Strona 1 z 1
Filtr dokumenty handlowe - załączniki dwa lub więcej
: 20 sie 2025, 11:41
autor: Kris86
Witam,
potrzebował bym filtr który zwróci mi na liście dokumentów, dokumenty FS - które mają dwa lub więcej załączników.
Dziękuję za pomoc
Re: Filtr dokumenty handlowe - załączniki dwa lub więcej
: 20 sie 2025, 14:13
autor: praiser
Kod: Zaznacz cały
Trn_GidNumer IN (
SELECT Trn_GidNumer
FROM CDN.TraNag
join CDN.DaneObiekty on TrN_GIDNumer=DAO_ObiNumer and DAO_ObiTyp=Trn_GidTyp
GROUP BY TrN_GidNumer
HAVING COUNT(DaO_ObiNumer) > 1
)
Re: Filtr dokumenty handlowe - załączniki dwa lub więcej
: 03 paź 2025, 10:07
autor: Kris86
Potrzebuję teraz filtrować te dokumenty, które nie mają załącznika.
Próbowałem przebudować powyższy kod operatorem NOT EXISTS () z WHERE ale nie pomogło.
Rozumiem że tutaj klauzula HAVING z COUNT() nie ma zastosowania?
Jak wyglądałby taki kod?
Dziękuję za wszelką pomoc.
Re: Filtr dokumenty handlowe - załączniki dwa lub więcej
: 03 paź 2025, 11:13
autor: praiser
można zamienić IN na NOT IN już bez grupowania i warunków having bo pełny join sprawdzi czy w ogóle istnieje powiązanie
ale lepiej użyć not exists, powinno być szybsze (i bezpieczniejsze przy NULL-ach)
Kod: Zaznacz cały
NOT EXISTS (
SELECT 1
FROM CDN.DaneObiekty
WHERE DAO_ObiNumer = Trn_GidNumer
AND DAO_ObiTyp = Trn_GidTyp
)
Re: Filtr dokumenty handlowe - załączniki dwa lub więcej
: 03 paź 2025, 11:32
autor: Kris86
praiser pisze: ↑03 paź 2025, 11:13
można zamienić IN na NOT IN już bez grupowania i warunków having bo pełny join sprawdzi czy w ogóle istnieje powiązanie
ale lepiej użyć not exists, powinno być szybsze (i bezpieczniejsze przy NULL-ach)
Kod: Zaznacz cały
NOT EXISTS (
SELECT 1
FROM CDN.DaneObiekty
WHERE DAO_ObiNumer = Trn_GidNumer
AND DAO_ObiTyp = Trn_GidTyp
)
Pomogło bez NOT EXISTS
Kod: Zaznacz cały
Trn_GidNumer NOT IN (
SELECT Trn_GidNumer
FROM CDN.TraNag
join CDN.DaneObiekty on TrN_GIDNumer=DAO_ObiNumer and DAO_ObiTyp=Trn_GidTyp
)