Witam,
Jak wyglądało by zapytanie SQL, które doda mi z automatu dodatkową grupę (nie domyślna).
Mam kilkudziesięciu kontrahentów, których akronim zaczyna się na XYZ. Są w grupie domyślnej \\Odbiorca\PL
Zapytanie miałoby wyszukać kontrahentów po początku akronimu XYZ... którzy są w grupie domyślnej \\Odbiorca\PL i dodać dodatkową grupę \\Odbiorca\VIP
Dzięki za wszelką pomoc.
SQL - Kontrahenci - automatyczne dodanie grupy
Moderator: mikey
Re: SQL - Kontrahent - automatyczne dodanie grup
W teroii powinno zadziałać.
Zakładasz docelową grupę VIP w XL (target). Odczytujesz jej identyfikator jak również identyfikator grupy PL (source)
Wrzucasz insert:
declare @grupa_source int = 10700
declare @grupa_target int = 15707
SET IDENTITY_INSERT CDN.Kntgrupy ON
insert into CDN.Kntgrupy (KnG_GIDTyp,KnG_GIDFirma,KnG_GIDNumer,KnG_GIDLp,KnG_GrOTyp,KnG_GrOFirma,KnG_GrONumer,KnG_GrOLp,KnG_Akronim,KnG_CzasModyfikacji,KnG_OpeNumer,KnG_CzasZalozenia,KnG_SyncId)
SELECT
Knt_Gidtyp,Knt_GidFirma,Knt_GidNumer,0,-32,Knt_GidFirma,@grupa_target,0,Knt_Akronim,cdn.DateToTS(CURRENT_TIMESTAMP),
(select distinct KG2.KnG_OpeNumer from CDN.KntGrupy KG2 where KG2.KnG_GidNumer=@grupa_target and KG2.Kng_Gidtyp=-32),cdn.DateToTS(CURRENT_TIMESTAMP),0
from CDN.KntKarty
where Knt_Akronim LIKE 'XYZ%'
and exists (select 1 from CDN.KntGrupyDom where Kgd_Gidnumer=Knt_Gidnumer and KGD_GroTyp=-32 and KGD_GroNumer=@grupa_source)
SET IDENTITY_INSERT CDN.KntGrupy OFF
Nie wiem natomiast co to jest KnG_SyncId i jak jest generowany (albo kopiowany) . W powyższym query jest tam wartość 0
Ktoś mądrzejszy musi się wypowiedzieć.
Zakładasz docelową grupę VIP w XL (target). Odczytujesz jej identyfikator jak również identyfikator grupy PL (source)
Wrzucasz insert:
declare @grupa_source int = 10700
declare @grupa_target int = 15707
SET IDENTITY_INSERT CDN.Kntgrupy ON
insert into CDN.Kntgrupy (KnG_GIDTyp,KnG_GIDFirma,KnG_GIDNumer,KnG_GIDLp,KnG_GrOTyp,KnG_GrOFirma,KnG_GrONumer,KnG_GrOLp,KnG_Akronim,KnG_CzasModyfikacji,KnG_OpeNumer,KnG_CzasZalozenia,KnG_SyncId)
SELECT
Knt_Gidtyp,Knt_GidFirma,Knt_GidNumer,0,-32,Knt_GidFirma,@grupa_target,0,Knt_Akronim,cdn.DateToTS(CURRENT_TIMESTAMP),
(select distinct KG2.KnG_OpeNumer from CDN.KntGrupy KG2 where KG2.KnG_GidNumer=@grupa_target and KG2.Kng_Gidtyp=-32),cdn.DateToTS(CURRENT_TIMESTAMP),0
from CDN.KntKarty
where Knt_Akronim LIKE 'XYZ%'
and exists (select 1 from CDN.KntGrupyDom where Kgd_Gidnumer=Knt_Gidnumer and KGD_GroTyp=-32 and KGD_GroNumer=@grupa_source)
SET IDENTITY_INSERT CDN.KntGrupy OFF
Nie wiem natomiast co to jest KnG_SyncId i jak jest generowany (albo kopiowany) . W powyższym query jest tam wartość 0
Ktoś mądrzejszy musi się wypowiedzieć.
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW