Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: EdytaLibro w Marzec 23, 2022, 10:53:47
-
Witam,
Czy pomoglibyście mi w przygotowaniu zestawienia SQL(formatowania warunkowego) w Rachmistrzu aby zaznaczało mi w KPIR, jeżeli jest ten sam numer dokumentu i kontrahent.
-
Tak, w czym dokładnie mamy pomóc, na czym utknęłaś ?
-
Zrobiłam takie zestawienie ale nie do końca wiem czy tak się tak się nazywają pozycję bo rachmistrz mi krzyczy.
case when (Ksiega.kpr_NrDokumentu) in (select distinct kpr_NrDokumentu from kpr_NrDokumentu as a where a.kpr_id<>Ksiega.kpr_id
and Ksiega.kpr_NazwaKh=a.kpr_symbolkh and len(Ksiega.kpr_NazwaKh)>0)
then 1 else 0 end
-
Zrobiłam takie zestawienie ale nie do końca wiem czy tak się tak się nazywają pozycję bo rachmistrz mi krzyczy.
Wypadałoby napisać co krzyczy, prawda?
A krzyczy bo tu jest kiszka:
select distinct kpr_NrDokumentu from kpr_NrDokumentu
kpr_NrDokumentu jest kolumną w tabeli kpr__Ksiega, więc to powinno być (bez distinct, szkoda pary):
select kpr_NrDokumentu from kpr__Ksiega
PS. Nie analizowałem poprawności funkcjonalnej samego warunku, a tylko formalną.
-
Zapytanie SQL jest poprawne, natomiast nie wyróżnia mi takich samych dokumentów od tego samego kontrahenta, więc coś jest nie tak z zapytaniem. Mi już brak pomysłów.
-
Zapytanie SQL jest poprawne, natomiast nie wyróżnia mi takich samych dokumentów od tego samego kontrahenta, więc coś jest nie tak z zapytaniem. Mi już brak pomysłów.
Nie działa bo jest naklepane "na odwal" się. Najpierw chcesz wybierać dane z kolumny zamiast z tabeli, a potem dajesz warunek
Ksiega.kpr_NazwaKh=a.kpr_symbolkh
Chcesz sprawdzać czy nazwa kontrahenta jest taka jak jego symbol? No chyba nie.
Poprawiłem ten błąd i trochę cały warunek i na pierwszy rzut działa (choć ja np chyba wolałbym sprawdzanie po NIP).
CASE WHEN EXISTS (SELECT kpr_NrDokumentu FROM kpr__Ksiega A WHERE A.kpr_Id <> Ksiega.kpr_Id AND Ksiega.kpr_NazwaKh = A.kpr_NazwaKh AND LEN(Ksiega.kpr_NazwaKh) > 0) THEN 1 ELSE 0 END
-
Przy takim zapytaniu zaznacza mi, że np: wszystkie zakupy z orange bo był kilka razy.
A mi chodzi o to aby zaznaczyło jeżeli w kpir znalazł się więcej niż raz ten sam dokument od tego samego kontrahenta
-
Przy takim zapytaniu zaznacza mi, że np: wszystkie zakupy z orange bo był kilka razy.
A mi chodzi o to aby zaznaczyło jeżeli w kpir znalazł się więcej niż raz ten sam dokument od tego samego kontrahenta
Zgadza się, to mój błąd. Brakło tego ostatniego warunku na kpr_NrDokumentu.
Powinno być
CASE WHEN EXISTS (SELECT kpr_NrDokumentu FROM kpr__Ksiega A
WHERE A.kpr_Id <> Ksiega.kpr_Id AND Ksiega.kpr_NazwaKh = A.kpr_NazwaKh AND LEN(Ksiega.kpr_NazwaKh) > 0 AND A.kpr_NrDokumentu = Ksiega.kpr_NrDokumentu
) THEN 1
ELSE 0 END
-
A jak bym chciała żeby wyłapywało po NIPie kontrahenta a nie po nazwie kontrahenta
-
No to zmień sobie w tym warunku.
W czym problem?