Untitled
Anonymous
plain_text
02/06/2024 7:25 AM
41.5 KB
17
Indexable
Wholesales
----ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΄ΠΈΠ»Π΅ΡΠΎΠ²---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π Π°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ»Π΅ΡΠΎΠ²
DROP TABLE IF EXISTS #cll
SELECT DISTINCT
cl.agent_inn,
cl.agent_name,
cl.client_inn,
cl.client_name,
contract_date_begin,
contract_name
INTO #cll
FROM [DATAMARTS].[dpa].[vw_clients] cl -- ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ»Π΅ΡΠΎΠ² (Ρ ΡΠΈΠ»ΡΡΡΠΎΠΌ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΡ)
DROP TABLE IF EXISTS #vtt
SELECT
vt.client_inn,
vt.agent_inn, --UPD ΠΠΎΠ±Π°Π²ΠΈΠ» ΠΠ½ΡΠΎΠ½
vt.contract_name,
vt.region,
CAST(MAX(vt.datetime_trn)OVER(PARTITION BY vt.client_inn,vt.contract_name) AS DATE) AS MAX_DOC_date -- Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ client_inn ΠΈ contract_name Π±Π΅ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ Π·Π½Π°Ρ datetime_trn, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ date ΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ MAX_DOC_date
INTO #vtt
FROM [DATAMARTS].[dpa].vw_transactions vt -- ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
GROUP BY vt.datetime_trn, vt.client_inn, vt.agent_inn, vt.contract_name, vt.region
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #vttr
SELECT
t.client_inn,
t.agent_inn, --upd: t.agent_inn Π΄ΠΎΠ±Π°Π²ΠΈΠ»
t.contract_name,
t.region,
t.MAX_DOC_date
INTO #vttr
FROM #vtt t
GROUP BY t.client_inn, t.agent_inn, t.contract_name, t.region, t.MAX_DOC_date
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--ΠΡΠΎΠ΄Π°ΠΆ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
DROP TABLE IF EXISTS #dll
SELECT
cll.agent_inn,
cll.agent_name,
vttr.client_inn,
cll.client_name,
vttr.region,
cll.contract_name,
CAST(cll.contract_date_begin AS DATE) AS MIN_DOC_date,
vttr.MAX_DOC_date
INTO #dll
FROM #vttr vttr
LEFT JOIN #cll cll
ON CONCAT(cll.client_inn,cll.contract_name)=CONCAT(vttr.client_inn,vttr.contract_name)
GROUP BY cll.agent_inn, cll.agent_name, vttr.client_inn, cll.client_name, vttr.region,
cll.contract_name, cll.contract_date_begin, vttr.MAX_DOC_date
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ½Π½ ΠΏΡΠΎΠ΄Π°ΠΆ ΠΏΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ° ΠΈΠ· [GPN_WHOLESALE_TRANSACTIONS] Π·Π° 2023 Π³ΠΎΠ΄
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--SELECT TOP 5 * FROM [DATAMARTS].[FINAL].[GPN_WHOLESALE_TRANSACTIONS] WHERE GOD = '2024'
--SELECT DISTINCT KANAL_PRODAZH_VYVERENNYJ FROM [DATAMARTS].[FINAL].[GPN_WHOLESALE_TRANSACTIONS] -- ΡΠΎΠ·Π½ΠΈΡΠ°, ΠΌΠ΅Π»ΠΊΠΈΠΉ ΠΎΠΏΡ
--SELECT DISTINCT TIP_NEFTEPRODUKTA FROM [DATAMARTS].[FINAL].[GPN_WHOLESALE_TRANSACTIONS] -- Π±Π΅Π½Π·ΠΈΠ½, Π΄Ρ, ΠΏΡΠΎΡΠ΅Π΅, ΡΡΠ³
DROP TABLE IF EXISTS #wh;
SELECT
wt.INN AS client_inn,
wt.NAIMENOVANIEKONTRAGENTAVYVERENNOE AS client_name,
wt.SALES_CONTRACT_NUMBER AS contract_number,
wt.DATA_REALIZACII AS date_operation,
wt.DOKUMENT_REGISTRATOR AS doc_reg_number,
MAX(wt.DATA_REALIZACII)OVER(PARTITION BY wt.INN, wt.SALES_CONTRACT_NUMBER) AS MAX_DOC_DATE_MO
INTO #wh
FROM [DATAMARTS].[FINAL].[GPN_WHOLESALE_TRANSACTIONS] wt
WHERE wt.KANAL_PRODAZH_VYVERENNYJ = '2.ΠΠ΅Π»ΠΊΠΈΠΉ ΠΠΠ’' and GOD='2023' AND KOLICHESTVO_TN > 0
GROUP BY INN, NAIMENOVANIEKONTRAGENTAVYVERENNOE, SALES_CONTRACT_NUMBER, DATA_REALIZACII, DOKUMENT_REGISTRATOR
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #whg
SELECT
w.client_inn,
w.client_name,
w.contract_number,
w.doc_reg_number,
CAST(w.MAX_DOC_DATE_MO AS date) AS MAX_DOC_DATE_MO
INTO #whg
FROM #wh w
GROUP BY
w.client_inn,
w.client_name,
w.contract_number,
w.doc_reg_number,
w.MAX_DOC_DATE_MO
--SELECT count(*) FROM #whg --270114
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--SELECT TOP 5 * FROM [DATAMARTS].[ASKU_RP].[vw_counterparty_contract_segment]
--SELECT TOP 5 * FROM [asku_kp_cdd].[cdd].[organization_department] --ΡΠ΅Π³ΠΈΠΎΠ½ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
--SELECT TOP 5 * FROM #whg
--SELECT TOP 5 * FROM [DATAMARTS].[FINAL].[GPN_WHOLESALE_TRANSACTIONS] WHERE GOD = '2024'
--SELECT count(*) AS matching_inn
--FROM [DATAMARTS].[ASKU_RP].[vw_counterparty_contract_segment] AS kpc
--INNER JOIN #whg AS go
--ON kpc.inn = go.client_inn;
DROP TABLE IF EXISTS #reg --ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°ΡΠΈ (ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΡΡ
Π½Π΅Ρ) ΠΈΠ· ΠΠ
SELECT
s.client_inn, --ΠΈΠ½Π½ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
LOWER(s.client_name) AS client_name, -- Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
s.contract_number, -- Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°
s.doc_reg_number, --Π½ΠΎΠΌΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ
cc.organization_department AS department, -- ΠΎΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
s.MAX_DOC_DATE_MO
INTO #reg
FROM #whg s
LEFT JOIN [DATAMARTS].[ASKU_RP].[vw_counterparty_contract_segment] cc --ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ
ON s.contract_number = cc.contract_number AND s.client_inn = cc.inn
--SELECT count(*) FROM #reg --270146
--SELECT top 10 * from #reg
--SELECT TOP 10 * FROM [DATAMARTS].[ASKU_RP].[vw_counterparty_contract_segment]
---------- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° NULL----------
--SELECT count(*)
--FROM #reg
--WHERE client_inn IS NULL
-- OR client_name IS NULL
-- OR contract_number IS NULL --41 NULL
-- OR doc_reg_number IS NULL
-- OR department IS NULL
-- OR MAX_DOC_DATE_MO IS NULL
------------------------------------------------
-- Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° Π»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ--
--SELECT count(*) AS mismatch_count
--FROM #reg
--WHERE client_inn != client_inn_2 AND client_name != counterparty_name;
--0 Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ--
------------------------------------------------------------------------------------------------
---- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ· GPN_WHOLESALE_TRANSACTIONS Π·Π° 2023 Π³ΠΎΠ΄
--SELECT TOP 10 * FROM #reg
----ΠΠΈΠ»Π΅ΡΡ ΠΈ ΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΈΠ· dll
--SELECT TOP 10 * FROM #dll
-- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΠΈ Ρ Π΄ΠΈΠ»Π΅ΡΠΎΠ², ΠΈ Π² GPN_WHOLESALE_TRANSACTIONS Π·Π° 2023 Π³ΠΎΠ΄
DROP TABLE IF EXISTS #CommonClients;
SELECT
dl.agent_inn AS agent_inn_dil,
dl.client_inn AS client_inn_dil,
LOWER(dl.client_name) AS client_name_dil,
r.department AS department,
r.client_inn AS client_inn_GZPN,
LOWER(r.client_name) AS client_name_GZPN
INTO #CommonClients
FROM #dll dl
INNER JOIN #reg r
ON dl.client_inn = r.client_inn --61453 ΠΈΠ»ΠΈ 767 Π΅ΡΠ»ΠΈ ->
--AND dl.client_name=r.client_name
SELECT count(*) FROM #CommonClients --61453
SELECT count(*) FROM #CommonClients WHERE agent_inn_dil IS NOT null --54102
-- Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Π½Π° Π»ΠΎΠΆΠ½ΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ--
--SELECT count(*) AS mismatch_count
--FROM #CommonClients
--WHERE client_inn_dil != client_inn_GZPN AND client_name_dil != client_name_GZPN;
--0 Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ--
---------- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° NULL--------------
--SELECT count(*) --
--FROM #CommonClients
--WHERE agent_inn_dil IS NULL -- 7351
-- OR client_inn_dil IS NULL
-- OR client_name_dil IS NULL
-- OR client_inn_GZPN IS NULL
-- OR client_name_GZPN IS NULL
-- OR department IS NULL
--ΠΠ±ΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ 7351 NULL
------------------------------------------------
--ΠΠ’ΠΠΠ--
-- ΠΡΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (61453 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²)
SELECT count(*) FROM #CommonClients
-- ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (116 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²)
SELECT COUNT(DISTINCT client_inn_dil) FROM #CommonClients;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--ΠΠΠΠΠΠ«
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--SELECT TOP 10 * FROM [SANDBOX_DB_TEAM_21].[dbo].[Med_Okved] -- ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΎΠΊΠ²ΡΠ΄Π°ΠΌΠΈ
DROP TABLE IF EXISTS #KP_CommonClientsOkved; -- ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΎΠΊΠ²ΡΠ΄Ρ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΠΈ Ρ Π½Π°Ρ, ΠΈ Ρ Π΄ΠΈΠ»Π΅ΡΠΎΠ²
SELECT
ccl.agent_inn_dil,
ccl.client_inn_dil,
ccl.client_name_dil,
ccl.client_inn_GZPN,
ccl.client_name_GZPN,
ccl.department,
okved.[ΠΠΠΠΠΠ‘] AS okved_client
INTO #KP_CommonClientsOkved
FROM #CommonClients ccl
LEFT JOIN [SANDBOX_DB_TEAM_21].[dbo].[Med_Okved] okved
ON ccl.client_inn_GZPN=okved.[ΠΠΠ]
GROUP BY
ccl.agent_inn_dil,
ccl.client_inn_dil,
ccl.client_name_dil,
ccl.client_inn_GZPN,
ccl.client_name_GZPN,
ccl.department,
okved.[ΠΠΠΠΠΠ‘]
SELECT count(*) FROM #KP_CommonClientsOkved
SELECT * FROM #KP_CommonClientsOkved
SELECT count(*) FROM #KP_CommonClientsOkved WHERE agent_inn_dil IS NULL -- 27 ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΡΡ
SELECT count(*) FROM #KP_CommonClientsOkved WHERE client_name_dil IS NULL -- 27 ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΡΡ
-------------------- ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ---------------------------------------
-- ΡΠΏΠ΅ΡΠ²Π° agent_inn_dil--
-- Π¨Π°Π³ 1: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°Ρ client_inn ΠΈ agent_inn Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π°Π³Π΅Π½ΡΡ
WITH UniqueAgentPairs AS (
SELECT
client_inn,
agent_inn
FROM #vttr
GROUP BY client_inn, agent_inn
),
-- Π¨Π°Π³ 2: ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
agent_inn Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ client_inn
UniqueAgentCount AS (
SELECT
client_inn,
COUNT(agent_inn) AS UniqueAgentCount
FROM UniqueAgentPairs
GROUP BY client_inn
HAVING COUNT(agent_inn) = 1 -- ΠΡΠ±ΠΎΡ client_inn Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ agent_inn - ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠ΅
),
-- Π¨Π°Π³ 3: ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΡΠ±ΠΎΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ
client_inn ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΠΌ agent_inn
AgentsToUpdate AS (
SELECT
uac.client_inn,
uap.agent_inn
FROM UniqueAgentCount uac
JOIN UniqueAgentPairs uap ON uac.client_inn = uap.client_inn
)
-- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ #KP_CommonClientsOkved
UPDATE kpc
SET kpc.agent_inn_dil = atu.agent_inn
FROM #KP_CommonClientsOkved kpc
JOIN AgentsToUpdate atu ON kpc.client_inn_dil = atu.client_inn
WHERE kpc.agent_inn_dil IS NULL;
-- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
SELECT * FROM #KP_CommonClientsOkved WHERE #KP_CommonClientsOkved.client_inn_dil = '0276906995'
SELECT * FROM #vttr WHERE #vttr.client_inn = '0276906995'
-- Π²ΡΠΎΠ΄Π΅ ΠΎΠΊ
-- ΡΠ΅ΠΏΠ΅ΡΡ client_name_dil--ΡΡΡ ΡΡΡΡ ΠΏΡΠΎΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ²ΡΠ·Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ
UPDATE kpc
SET kpc.client_name_dil = reg.client_name
FROM #KP_CommonClientsOkved kpc
INNER JOIN #reg reg ON kpc.client_inn_dil = reg.client_inn
WHERE kpc.client_name_dil IS NULL
-- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
SELECT * FROM #KP_CommonClientsOkved WHERE #KP_CommonClientsOkved.client_inn_dil = '0276906995'
SELECT * FROM #reg WHERE #reg.client_inn = '0276906995'
-- Π²ΡΠΎΠ΄Π΅ ΠΎΠΊ
SELECT count(*) FROM #KP_CommonClientsOkved WHERE okved_client IS NULL --24 ΠΏΡΡΡΡΡ
ΠΎΠΊΠ²ΡΠ΄Π°
-- Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΠΠΠΠΠΠ ΠΈΠ· [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED]
--Ρ
ΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π² ΠΠΠΠΠΠ‘ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· NAIMENOVANIE_OKVED Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΠ½Π½-----------------------------------------------------
UPDATE kpc
SET kpc.okved_client = go.NAIMENOVANIE_OKVED
FROM #KP_CommonClientsOkved 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;
SELECT * FROM #KP_CommonClientsOkved
--ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ
ΠΈΠ½Π½ Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ
--SELECT count(*) AS matching_inn
--FROM #KP_CommonClientsOkved AS kpc
--INNER JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] AS go
--ON kpc.client_inn_dil = go.INN;
-- Ρ
ΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΠΠΠΠΠ‘, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π΅Π½ ΠΈΠ· [Med_Okved] Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ· [GEN_OKVED], ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΌ
UPDATE kpc
SET kpc.okved_client = go.NAIMENOVANIE_OKVED
FROM #KP_CommonClientsOkved 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 OR kpc.okved_client <> go.NAIMENOVANIE_OKVED; -- ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΠΠΠΠΠ‘ ΠΏΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ NAIMENOVANIE_OKVED
------------------------------------------
SELECT * FROM #KP_CommonClientsOkved
DROP TABLE IF EXISTS [SANDBOX_DB_TEAM_21].[dbo].[TIT_dealer_MO]
SELECT *
INTO [SANDBOX_DB_TEAM_21].[dbo].[TIT_dealer_MO]
FROM #KP_CommonClientsOkved
FullKP
----ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΄ΠΈΠ»Π΅ΡΠΎΠ²---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π Π°Π½ΠΆΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ»Π΅ΡΠΎΠ²
DROP TABLE IF EXISTS #cll
SELECT DISTINCT
cl.agent_inn,
cl.agent_name,
cl.client_inn,
cl.client_name,
contract_date_begin,
contract_name
INTO #cll
FROM [DATAMARTS].[dpa].[vw_clients] cl -- ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄ΠΈΠ»Π΅ΡΠΎΠ² (Ρ ΡΠΈΠ»ΡΡΡΠΎΠΌ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΏΡΠΎΠ΄Π°ΠΆΡ)
DROP TABLE IF EXISTS #vtt
SELECT
vt.client_inn,
vt.agent_inn, --UPD ΠΠΎΠ±Π°Π²ΠΈΠ» ΠΠ½ΡΠΎΠ½
vt.contract_name,
vt.region,
CAST(MAX(vt.datetime_trn)OVER(PARTITION BY vt.client_inn,vt.contract_name) AS DATE) AS MAX_DOC_date -- Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ client_inn ΠΈ contract_name Π±Π΅ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ Π·Π½Π°Ρ datetime_trn, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ date ΠΈ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ MAX_DOC_date
INTO #vtt
FROM [DATAMARTS].[dpa].vw_transactions vt -- ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
GROUP BY vt.datetime_trn, vt.client_inn, vt.agent_inn, vt.contract_name, vt.region
--SELECT TOP 5 * FROM [DATAMARTS].[dpa].vw_transactions
--SELECT TOP 5 * FROM #vtt
--SELECT count(*) FROM [DATAMARTS].[dpa].vw_transactions --17139622
--SELECT count(*) FROM [DATAMARTS].[dpa].vw_transactions WHERE region IS NULL --1069432
--SELECT count(*) FROM [DATAMARTS].[dpa].vw_transactions WHERE region IS not NULL --16070190
--SELECT count(*) FROM #vtt --17011925
--SELECT count(*) FROM #vtt WHERE region IS NULL --1034482
--SELECT count(*) FROM #vtt WHERE region IS not NULL --15977443
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #vttr
SELECT
t.client_inn,
t.agent_inn, --upd: t.agent_inn Π΄ΠΎΠ±Π°Π²ΠΈΠ»
t.contract_name,
t.region,
t.MAX_DOC_date
INTO #vttr
FROM #vtt t
GROUP BY t.client_inn, t.agent_inn, t.contract_name, t.region, t.MAX_DOC_date
---- Π±Π΅Π· t.agent_inn
--SELECT COUNT(*) FROM #vttr --74678
--SELECT count(*) FROM #vttr WHERE region IS NULL --4237
--SELECT count(*) FROM #vttr WHERE region IS not NULL --70441
---- Ρ t.agent_inn
--SELECT COUNT(*) FROM #vttr --75251
--SELECT count(*) FROM #vttr WHERE region IS NULL --4324
--SELECT count(*) FROM #vttr WHERE region IS not NULL --70927
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--ΠΡΠΎΠ΄Π°ΠΆ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
DROP TABLE IF EXISTS #dll
SELECT
cll.agent_inn,
cll.agent_name,
vttr.client_inn,
cll.client_name,
vttr.region,
cll.contract_name,
CAST(cll.contract_date_begin AS DATE) AS MIN_DOC_date,
vttr.MAX_DOC_date
INTO #dll
FROM #vttr vttr
LEFT JOIN #cll cll
ON CONCAT(cll.client_inn,cll.contract_name)=CONCAT(vttr.client_inn,vttr.contract_name)
GROUP BY cll.agent_inn, cll.agent_name, vttr.client_inn, cll.client_name, vttr.region,
cll.contract_name, cll.contract_date_begin, vttr.MAX_DOC_date
----SELECT * FROM #dll WHERE #dll.contract_name IS NULL
---- #vttr check
--SELECT TOP 5 * FROM #vttr
---- #cll check
--SELECT TOP 5 * FROM #cll
---- #dll check
--SELECT * FROM #dll
--SELECT TOP 10 * FROM #dll --74887
--SELECT COUNT(*) FROM #dll WHERE agent_inn IS not NULL --58639
--SELECT COUNT(*) FROM #dll WHERE agent_inn IS NULL -- 16248
--SELECT * FROM #dll WHERE agent_inn IS NULL AND client_inn='524900669020'
--SELECT * FROM #vttr WHERE client_inn='524900669020'
--SELECT * FROM #cll WHERE client_inn='524900669020'
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----ΠΌΡΠΏΠΏΠΈΠ½Π³ ΠΠΠ‘ Π΄Π»Ρ ΠΠ
-- DROP TABLE IF EXISTS #coord
-- SELECT o.c_code AS ΠΠΠ_ΠΠ‘ΠΠ£, o.c_comment AS ΠΠΠΠΠΠΠ’ΠΠ ΠΠ_ΠΠ‘ΠΠ£,
-- o.c_description AS ΠΠΠΠ‘ΠΠΠΠ_ΠΠ‘ΠΠ£, ou.standart_code ΠΠΠ_Π‘Π’ΠΠΠΠΠ Π’,
-- ou.standart_description AS ΠΠΠΠ‘ΠΠΠΠ_Π‘Π’ΠΠΠΠΠ Π’, em.COORD_EAST, em.COORD_NORTH
-- INTO #coord
-- FROM [asku_rp_kk_cdd].[cdd].[operating_unit] o
-- LEFT JOIN [DATAMARTS].[DICT].[vw_operation_unit] ou
-- ON o.id_rref=ou.ou_ku_id_asku_rp_kk
-- LEFT JOIN [DATAMARTS].[EMIS].[VW_AZSS_GPN] em
-- ON ou.standart_code_emis=em.GPNAZS_ID
-- GROUP BY o.c_code, o.c_comment, o.c_description, ou.standart_code,
-- ou.standart_description, em.COORD_EAST, em.COORD_NORTH
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΈΠ½Π½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΡΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΏΠΎ ΡΠΎΠΏΠ»ΠΈΠ²Π½ΡΠΌ ΠΊΠ°ΡΡΠ°ΠΌ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ
Π»ΠΈΡ Π Π€ Ρ Π½Π°ΡΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ· [VW_REALIZACIYA_FULL_KP] Π·Π° 2023 Π³ΠΎΠ΄
DROP TABLE IF EXISTS #wee;
SELECT
s.KONTRAGENT_INN,
s.KONTRAGENT_NAIMENOVANIE,
s.DOGOVORKONTRAGENTA_DATA_DOGOVORA,
s.DOGOVORKONTRAGENTA_NOMER_DOGOVORA,
s.DOGOVORKONTRAGENTA_ID_ASKU,
s.DATA_OPERACII,
MAX(s.DATA_OPERACII)OVER(PARTITION BY KONTRAGENT_INN,DOGOVORKONTRAGENTA_NOMER_DOGOVORA) AS MAX_DOC_DATE_KK
INTO #wee
FROM [DATAMARTS].[KA].[VW_REALIZACIYA_FULL_KP] s
WHERE YEAR(DATA_OPERACII)='2023' -- DATA_OPERACII>='2023-07-01' and DATA_OPERACII<='2023-12-31'
AND KOLICHESTVO_L>0
--AND NOMENKLATURNAYA_GRUPPA_KRATKO='ΠΠ΅ΡΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΡ'
--AND DOGOVORKONTRAGENTA_KLASSIFIKACIYA_KLIENTA='ΠΠΈΠ»Π΅ΡΡ'
GROUP BY KONTRAGENT_INN, KONTRAGENT_NAIMENOVANIE, s.DOGOVORKONTRAGENTA_DATA_DOGOVORA, s.DOGOVORKONTRAGENTA_NOMER_DOGOVORA, s.DOGOVORKONTRAGENTA_ID_ASKU, s.DATA_OPERACII
--SELECT TOP 10 * FROM [DATAMARTS].[KA].[VW_REALIZACIYA_FULL_KP] WHERE DOGOVORKONTRAGENTA_GOSKONTRAKT!=1
--SELECT TOP 10 * FROM #wee
--SELECT DISTINCT NOMENKLATURNAYA_GRUPPA_KRATKO FROM [DATAMARTS].[KA].[VW_REALIZACIYA_FULL_KP]
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #wwe
SELECT
a.KONTRAGENT_INN,
a.KONTRAGENT_NAIMENOVANIE,
a.DOGOVORKONTRAGENTA_DATA_DOGOVORA,
a.DOGOVORKONTRAGENTA_NOMER_DOGOVORA,
a.DOGOVORKONTRAGENTA_ID_ASKU,
CAST(a.MAX_DOC_DATE_KK AS date) AS MAX_DOC_DATE_KK
INTO #wwe
FROM #wee a
GROUP BY
a.KONTRAGENT_INN,
a.KONTRAGENT_NAIMENOVANIE,
a.DOGOVORKONTRAGENTA_DATA_DOGOVORA,
a.DOGOVORKONTRAGENTA_NOMER_DOGOVORA,
a.DOGOVORKONTRAGENTA_ID_ASKU,
a.MAX_DOC_DATE_KK
--SELECT TOP 10 * FROM [DATAMARTS].[KA].[VW_REALIZACIYA_FULL_KP]
--WHERE YEAR(DATA_OPERACII)='2023' AND KONTRAGENT_INN='5506039040'
--SELECT TOP 10 * FROM #wwe WHERE #wwe.KONTRAGENT_INN='5506039040'
--SELECT TOP 10 * FROM #wee WHERE #wee.KONTRAGENT_INN='5506039040'
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #reg --ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°ΡΠΈ (ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΡΡ
Π½Π΅Ρ)
SELECT s.KONTRAGENT_INN, s.KONTRAGENT_NAIMENOVANIE, s.DOGOVORKONTRAGENTA_DATA_DOGOVORA, s.DOGOVORKONTRAGENTA_NOMER_DOGOVORA, r.c_description AS OTDELENIE, MAX_DOC_DATE_KK
INTO #reg
FROM #wwe s
LEFT JOIN [asku_rp_kk_cdd].[cdd].[counterparty_contract] cc --ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ
ON s.DOGOVORKONTRAGENTA_ID_ASKU = cc.id_rref
LEFT JOIN [asku_kp_cdd].[cdd].[organization_department] r --ΡΠ΅Π³ΠΈΠΎΠ½ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
ON cc.organization_department_rref=r.id_rref
--SELECT count(*) FROM #reg --74318
--ΠΠ’ΠΠ-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS #match_date
SELECT l.agent_inn, l.agent_name, l.client_inn, l.client_name, l.region, l.contract_name, l.MIN_DOC_date, l.MAX_DOC_date,
e.OTDELENIE, e.DOGOVORKONTRAGENTA_NOMER_DOGOVORA, e.DOGOVORKONTRAGENTA_DATA_DOGOVORA, MAX_DOC_DATE_KK
INTO #match_date
FROM #dll l -- ΠΡΠΎΠ΄Π°ΠΆ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠ²
LEFT JOIN #reg e --ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°ΡΠΈ
ON l.client_inn=e.KONTRAGENT_INN AND l.client_name=e.KONTRAGENT_NAIMENOVANIE --upd: Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅
GROUP BY l.agent_inn, l.agent_name, l.client_inn, l.client_name, l.region, l.contract_name, l.MIN_DOC_date, l.MAX_DOC_date,
e.OTDELENIE, e.DOGOVORKONTRAGENTA_NOMER_DOGOVORA, e.DOGOVORKONTRAGENTA_DATA_DOGOVORA, MAX_DOC_DATE_KK
--SELECT TOP 5 * FROM #match_date WHERE agent_inn IS NOT NULL
--SELECT TOP 5 * FROM #dll WHERE agent_inn IS NOT NULL
--SELECT TOP 5 * FROM #reg
--SELECT COUNT(DISTINCT agent_inn) FROM #match_date --75047
--SELECT COUNT(*) FROM #match_date WHERE agent_inn IS not NULL --58799
--SELECT COUNT(*) FROM #match_date WHERE agent_inn IS NULL -- 16248
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS [SANDBOX_DB_TEAM_21].[dbo].[GEN_dealer]
SELECT *
INTO [SANDBOX_DB_TEAM_21].[dbo].[GEN_dealer]
FROM #match_date
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SELECT distinct d.agent_inn,
--d.agent_name, ag.NAIMENOVANIE_OKVED AS agent_okved,
d.client_inn
--,
--d.client_name, cl.NAIMENOVANIE_OKVED AS client_okved,
--d.region, d.contract_name, d.MIN_DOC_date, d.MAX_DOC_date, d.OTDELENIE,
--d.DOGOVORKONTRAGENTA_NOMER_DOGOVORA, d.DOGOVORKONTRAGENTA_DATA_DOGOVORA,
--d.MAX_DOC_DATE_KK
FROM [SANDBOX_DB_TEAM_21].[dbo].[GEN_dealer] d
LEFT JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] ag
ON d.agent_inn=ag.INN
LEFT JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] cl
ON d.client_inn=cl.INN
WHERE ag.NAIMENOVANIE_OKVED IS NULL
OR cl.NAIMENOVANIE_OKVED IS NULL
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈΠ· VW_REALIZACIYA_FULL_KP Π·Π° 2023 Π³ΠΎΠ΄
--SELECT TOP 10 * FROM #reg
----ΠΠΈΠ»Π΅ΡΡ ΠΈ ΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΠΈΠ· dll
--SELECT TOP 10 * FROM #dll
-- Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΠΈ Ρ Π΄ΠΈΠ»Π΅ΡΠΎΠ², ΠΈ Π² VW_REALIZACIYA_FULL_KP Π·Π° 2023 Π³ΠΎΠ΄
DROP TABLE IF EXISTS #CommonClients;
SELECT
dl.agent_inn AS agent_inn_dil,
dl.client_inn AS client_inn_dil,
dl.client_name AS client_name_dil,
r.KONTRAGENT_NAIMENOVANIE AS client_name_GZPN
INTO #CommonClients
FROM #dll dl
INNER JOIN #reg r
ON dl.client_inn = r.KONTRAGENT_INN --8455 ΠΈΠ»ΠΈ 417 Π΅ΡΠ»ΠΈ -> AND dl.client_name=r.KONTRAGENT_NAIMENOVANIE
--SELECT TOP 5 * FROM #reg
--SELECT TOP 5 * FROM #dll WHERE client_inn is not NULL AND agent_inn is not NULL
--SELECT * FROM #CommonClients
---- ΠΡΠ΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (8455 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²)
--SELECT count(*) FROM #CommonClients
---- ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² (906 ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²)
--SELECT COUNT(DISTINCT client_inn_dil) FROM #CommonClients;
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--ΠΠΠΠΠΠ«
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--SELECT TOP 10 * FROM [SANDBOX_DB_TEAM_21].[dbo].[Med_Okved] -- ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΠΎΠΊΠ²ΡΠ΄Π°ΠΌΠΈ
DROP TABLE IF EXISTS #KP_CommonClientsOkved; -- ΠΏΠΎΠ΄ΡΡΠ³ΠΈΠ²Π°Π΅ΠΌ ΠΎΠΊΠ²ΡΠ΄Ρ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΠΈ Ρ Π½Π°Ρ, ΠΈ Ρ Π΄ΠΈΠ»Π΅ΡΠΎΠ²
SELECT ccl.agent_inn_dil, ccl.client_inn_dil, ccl.client_name_dil, ccl.client_name_GZPN, okved.[ΠΠΠΠΠΠ‘]
INTO #KP_CommonClientsOkved
FROM #CommonClients 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.[ΠΠΠΠΠΠ‘]
-- ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π²ΠΈΠ΄ΠΈΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ²
--SELECT * FROM #CommonClients
--GROUP BY agent_inn_dil, client_inn_dil, client_name_dil, client_name_GZPN
--SELECT count(client_inn_dil) FROM #KP_CommonClientsOkved --1083 ΡΡΡΠΎΠΊ
--SELECT count(DISTINCT client_inn_dil) FROM #KP_CommonClientsOkved -- 906 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ½Π½
--SELECT count(*) FROM #KP_CommonClientsOkved WHERE agent_inn_dil IS NULL OR client_name_dil IS NULL -- 297 ΠΏΡΠΎΠΏΡΡΠΊΠΎΠ² Π² Π΄Π°Π½Π½ΡΡ
-------------------- ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ--------------------
-- ΡΠΏΠ΅ΡΠ²Π° agent_inn--
-- Π¨Π°Π³ 1: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
ΠΏΠ°Ρ client_inn ΠΈ agent_inn Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π°Π³Π΅Π½ΡΡ
WITH UniqueAgentPairs AS (
SELECT
client_inn,
agent_inn
FROM #vttr
GROUP BY client_inn, agent_inn
),
-- Π¨Π°Π³ 2: ΠΠΎΠ΄ΡΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ
agent_inn Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ client_inn
UniqueAgentCount AS (
SELECT
client_inn,
COUNT(agent_inn) AS UniqueAgentCount
FROM UniqueAgentPairs
GROUP BY client_inn
HAVING COUNT(agent_inn) = 1 -- ΠΡΠ±ΠΎΡ client_inn Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ agent_inn - ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠ΅
),
-- Π¨Π°Π³ 3: ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΡΠ±ΠΎΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ
client_inn ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΠΌ agent_inn
AgentsToUpdate AS (
SELECT
uac.client_inn,
uap.agent_inn
FROM UniqueAgentCount uac
JOIN UniqueAgentPairs uap ON uac.client_inn = uap.client_inn
)
-- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ #KP_CommonClientsOkved
UPDATE kpc
SET kpc.agent_inn_dil = atu.agent_inn
FROM #KP_CommonClientsOkved kpc
JOIN AgentsToUpdate atu ON kpc.client_inn_dil = atu.client_inn
WHERE kpc.agent_inn_dil IS NULL;
-- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
--SELECT * FROM #KP_CommonClientsOkved WHERE #KP_CommonClientsOkved.client_inn_dil = '0275918765'
--SELECT * FROM #vttr WHERE #vttr.client_inn = '0275918765'
-- Π²ΡΠΎΠ΄Π΅ ΠΎΠΊ
-- ΡΠ΅ΠΏΠ΅ΡΡ client_name_dil--ΡΡΡ ΡΡΡΡ ΠΏΡΠΎΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ²ΡΠ·Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½Π°Ρ
UPDATE kpc
SET kpc.client_name_dil = reg.KONTRAGENT_NAIMENOVANIE
FROM #KP_CommonClientsOkved kpc
INNER JOIN #reg reg ON kpc.client_inn_dil = reg.KONTRAGENT_INN
WHERE kpc.client_name_dil IS NULL
-- ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
--SELECT * FROM #KP_CommonClientsOkved WHERE #KP_CommonClientsOkved.client_inn_dil = '0275918765'
--SELECT * FROM #reg WHERE #reg.KONTRAGENT_INN = '0275918765'
-- Π²ΡΠΎΠ΄Π΅ ΠΎΠΊ
-- Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΠΠΠΠΠΠ ΠΈΠ· [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED]
--Ρ
ΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π² ΠΠΠΠΠΠ‘ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· NAIMENOVANIE_OKVED Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΈΠ½Π½-----------------------------------------------------
UPDATE kpc
SET kpc.ΠΠΠΠΠΠ‘ = LEFT(go.NAIMENOVANIE_OKVED, 255)
FROM #KP_CommonClientsOkved 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.ΠΠΠΠΠΠ‘ IS NULL;
--ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ
ΠΈΠ½Π½ Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ
SELECT count(*) AS matching_inn
FROM #KP_CommonClientsOkved AS kpc
INNER JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] AS go
ON kpc.client_inn_dil = go.INN;
-- Ρ
ΠΎΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΠΠΠΠΠ‘, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π΅Π½ ΠΈΠ· [Med_Okved] Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ· [GEN_OKVED], ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΠΌ
UPDATE kpc
SET kpc.ΠΠΠΠΠΠ‘ = go.NAIMENOVANIE_OKVED
FROM #KP_CommonClientsOkved AS kpc
INNER JOIN [SANDBOX_DB_TEAM_21].[dbo].[GEN_OKVED] AS go
ON kpc.client_inn_dil = go.INN
WHERE kpc.ΠΠΠΠΠΠ‘ IS NULL OR kpc.ΠΠΠΠΠΠ‘ <> go.NAIMENOVANIE_OKVED; -- ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΠΠΠΠΠ‘ ΠΏΡΡΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ NAIMENOVANIE_OKVED
------------------------------------------
SELECT * FROM #KP_CommonClientsOkved
DROP TABLE IF EXISTS [SANDBOX_DB_TEAM_21].[dbo].[TIT_dealer_FULLKP]
SELECT *
INTO [SANDBOX_DB_TEAM_21].[dbo].[TIT_dealer_FULLKP]
FROM #KP_CommonClientsOkved
SELECT TOP 10 * FROM #regEditor is loading...
Leave a Comment