Untitled

mail@pastecode.io avatar
unknown
plain_text
22 days ago
3.1 kB
1
Indexable
Never
	-- Создаем временную таблицу для новых клиентов, которых нет в dealer_MO_KP_modified
DROP TABLE IF EXISTS #NewClients;

SELECT
    vttr.transaction_date,
    vttr.agent_inn AS agent_inn_dil,
    vttr.client_inn AS client_inn_dil,
    dll.client_name AS client_name_dil, -- Используем client_name из #dll для client_name_dil
	'Нет данных' AS client_name_GZPN,
    vttr.total_monthly_litres AS total_monthly_litres_dil,
    0 AS MO_dealer_monthly_ton_GZPN, -- Поскольку это новые клиенты, значения для ton_GZPN ставим 0
    0 AS KP_dealer_monthly_ton_GZPN,
    0 AS MO_KP_dealer_monthly_ton_GZPN,
    'Прочие' AS label -- Устанавливаем label в 'Прочие', так как они не попали в категории MO, KP или MO+KP
INTO #NewClients
FROM #dll AS dll
LEFT JOIN #vttr AS vttr ON dll.client_inn = vttr.client_inn
WHERE NOT EXISTS (
    SELECT 1
    FROM #dealer_MO_KP_modified AS modi
    WHERE modi.client_inn_dil = dll.client_inn
)
AND year(vttr.transaction_date) = 2023
GROUP BY vttr.transaction_date, vttr.agent_inn, vttr.client_inn, dll.client_name, vttr.total_monthly_litres;

SELECT TOP 10 * FROM #NewClients
SELECT count(*) FROM #NewClients 


DROP TABLE IF EXISTS #NewClients_Okved; -- подтягиваем оквэды к таблице с клиентами
SELECT 
	ccl.transaction_date,
	ccl.agent_inn_dil, 
	ccl.client_inn_dil, 
	ccl.client_name_dil,
	ccl.client_name_GZPN, 
	ccl.total_monthly_litres_dil,
	ccl.MO_dealer_monthly_ton_GZPN,
	ccl.KP_dealer_monthly_ton_GZPN,
	ccl.MO_KP_dealer_monthly_ton_GZPN,
	okved.[ИНДЕКС] AS okved_client,
	ccl.label

INTO #NewClients_Okved
FROM #NewClients ccl
LEFT JOIN [SANDBOX_DB_TEAM_21].[dbo].[Med_Okved] okved 
	ON ccl.client_inn_dil=okved.[ИНН]
GROUP BY 
	ccl.agent_inn_dil,
	ccl.client_inn_dil, 
	ccl.client_name_dil, 
	ccl.client_name_GZPN, 
	okved.[ИНДЕКС],
	ccl.label,
	transaction_date,
	total_monthly_litres_dil,
	MO_dealer_monthly_ton_GZPN,
	KP_dealer_monthly_ton_GZPN,
	MO_KP_dealer_monthly_ton_GZPN

SELECT count(*) FROM #NewClients_Okved WHERE okved_client IS NULL --66813

-- добавим информацию по ОКВЭДАМ из [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED]

--проверка сколько совпадающих инн есть между таблицами
SELECT count(*) AS matching_inn
FROM #NewClients_Okved AS kpc
INNER JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] AS go
ON kpc.client_inn_dil = go.INN
where kpc.okved_client is null
--24246

 --хочу заменить пропуски в ИНДЕКС на значения из NAIMENOVANIE_OKVED для соответствующих инн-----------------------------------------------------
UPDATE kpc
SET kpc.okved_client = go.NAIMENOVANIE_OKVED
FROM #NewClients_Okved AS kpc
INNER JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] AS go
    ON kpc.client_inn_dil = go.INN
WHERE go.VID_OKVED = 'Основной' 
  AND kpc.okved_client IS NULL;
Leave a Comment