Untitled
unknown
plain_text
2 years ago
3.1 kB
5
Indexable
-- Создаем временную таблицу для новых клиентов, которых нет в 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;Editor is loading...
Leave a Comment