SQL - Kontrahenci - automatyczne dodanie grupy

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

Kris86
Posty: 134
Rejestracja: 09 wrz 2021, 18:27
Rola: Administrator CDN XL
Wersja: 2019

SQL - Kontrahenci - automatyczne dodanie grupy

Post autor: Kris86 »

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.

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: SQL - Kontrahent - automatyczne dodanie grup

Post autor: praiser »

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ć.
--------------------------------
Pozdrawiam
WW

ODPOWIEDZ