No i kolejny problem i zagwozdka.
Zacznę od kodu:
SELECT
'Symbol kontrahenta'=CASE WHEN kh_Symbol IS NULL THEN '(Kontrahent nieokreślony)' ELSE kh_Symbol END
,adr_Nazwa 'Kontrahent'
,adr_Adres 'Adres'
,adr_Kod 'Kod pocztowy'
,adr_Miejscowosc 'Miasto'
,adr_Telefon 'Telefon'
,adr_NIP 'NIP'
,SUM(CASE WHEN dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (65536, 65537, 65538, 196608, 327680, 327681) THEN
(-1) * dok_WartNetto
ELSE
dok_WartNetto
END)
- (CASE WHEN (SELECT SUM(dok_WartNetto) FROM dok__Dokument WHERE dok_NrPelny IN (SELECT value FROM STRING_SPLIT((SELECT STRING_AGG(pwd_Tekst04, ',') FROM pw_Dane WHERE pwd_IdObiektu IN (???)), ','))) IS NULL THEN 0
ELSE (SELECT SUM(dok_WartNetto) FROM dok__Dokument WHERE dok_NrPelny IN (SELECT value FROM STRING_SPLIT((SELECT STRING_AGG(pwd_Tekst04, ',') FROM pw_Dane WHERE pwd_IdObiektu IN (???)), ','))) END
)
as 'Wartość netto'
FROM dok__Dokument
LEFT JOIN kh__Kontrahent ON dok_PlatnikId = kh_Id
LEFT JOIN adr__Ewid ON kh_Id = adr_IdObiektu
LEFT JOIN sl_Kategoria ON dok_KatId = kat_Id
LEFT JOIN sl_GrupaKh ON kh_IdGrupa = grk_Id
WHERE dok_Status <> 2
AND dok_KatId <> (SELECT kat_Id FROM sl_Kategoria WHERE kat_Nazwa = 'Koszt obcy')
AND ((adr_TypAdresu = 1) OR (dok_PlatnikId IS NULL))
AND ( dok_DataWyst >= {D:Dokumenty z okresu od:GETDATE()} AND dok_DataWyst <= {D:do:GETDATE()} )
AND (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN (131072, 131074, 131075, 131076, 131077, 262144, 393216, 393217, 393218, 1376256, 1376257, 1376258, 1376259, 917504, 917505, 4063232, 4390912, 4390913, 65536, 65537, 65538, 196608, 327680, 327681))
AND (dok_MagId IN (1, 27))
AND kh_IdGrupa IN ({CHL_DB:SELECT grk_Id, grk_Nazwa FROM sl_GrupaKh:Grupa Kontrahenta:SELECT grk_Id FROM sl_GrupaKh:dowolna})
AND adr_IdWojewodztwo IN ({CHL_DB:SELECT woj_Id, woj_Nazwa FROM sl_Wojewodztwo:Województwo:SELECT woj_Id FROM sl_Wojewodztwo:dowolne})
AND kh_Id IN ({LM:KH:Kontrahent:SELECT kh_Id FROM kh__Kontrahent:dowolny})
GROUP BY kh_Id, kh_Symbol, adr_Nazwa, adr_Adres, adr_Kod, adr_Miejscowosc, adr_Telefon, adr_NIP, grk_Nazwa
Już tłumaczę jakie jest założenie tego zapytania. Ono jest ciut dłuższe w oryginale, ale samo clue jest tutaj zawarte. Otóż.
Zapytanie ma pobierać wartości dokumentów sprzedażowych poszczególnych kontrahentów i je sumować grupując po kontrahencie. Ale niektóre z tych dokumentów, w jednym miejscu w systemie mają wpisaną np fakturę zakupu. W bazie jest to w kolumnie pwd_Tekst04 tabeli pw_Dane. Jak przekazać w miejsce znaków zapytania listę ID dokumentów z zapytania nadrzędnego? Mam nadzieję, że zrozumiecie o co mi chodzi. W razie czego dopytujcie. Jest to fragment zapytania do wklejenia jako zestawienie do Subiekta GT.