Autor Wątek: Rozrachunki - zapytanie SQL - nie dla wszystkich kontrahentów  (Przeczytany 2259 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline sciema.fm

  • Nowy użytkownik
  • *
  • Wiadomości: 2
  • Reputacja +0/-0
  • Wersja programu: 1.50 SP 1 HF1
witam,

ostatnio przyszedł na czas powalczyć z własnymi zestawieniami w Subiekcie GT. Konkretnie chciałem stworzyć zestawienie pokazujace należności i zobowiązania wyciągając dodatkowa daną wpisywaną w na rachunku sprzedaży w polu PODTYTUŁ.
Jako że jestem zielony w zapytaniach dla subiekta na bazie waszych postów złożyłem poniższe zapytanie:

SELECT mag_symbol                               AS [Magazyn],
       nzf_data                                          AS [Data powstania],
       nzf_numerpelny                               AS [Dokument],
       adr_nazwa                                       AS [Nazwa],
       adr_nip                                             AS [NIP],
       nzf_wartosc                                     AS [Należność],
       nzf_terminplatnosci                          AS [Termin platności],
       nzf_splata                                         AS [Zobowiązanie],
       CONVERT(INT, dbo.dok__dokument.dok_plattermin - dbo.dok__dokument.dok_datawyst) AS [Termin w dniach],
       dbo.Fndnispoznienia(nzf_terminplatnosci, Getdate()) AS [Spóźnienie],
       dok__dokument.dok_podtytul AS [Ile sztuk]
FROM   nz__finanse
       FULL OUTER JOIN dok__dokument ON nzf_iddokumentauto = dok_id
       FULL OUTER JOIN adr__ewid ON nzf_idadresu = adr_id
       FULL OUTER JOIN sl_magazyn ON dok_magid = mag_id

WHERE  nzf_typ IN ( 39,40,41,42 )
        AND adr_typadresu = 1
        AND nzf_status = 1
        AND dok_typ IN (1,2,3,4,5,6)
        AND nzf_wartosc > 0
        AND (0={LI:przeterminowane#1#wszystkie#0#:termin zapłaty:1} or dbo.fnDniSpoznienia(nzf_TerminPlatnosci, GetDate())>0)
and nz__Finanse.nzf_Data<{D: Pokaż dokumenty do dnia :GetDate()}
and dok_PlatnikId IN ({LM:KH:Kontrahent:0:Wybierz})
ORDER by Nazwa

Mój problem to że działa dla niektórych kontrahentów i ni w ząb nie mogę dojść dlaczego???? :((( Siedzę już nad tym kilka wieczorów i nic ....:(((

Sprawdzałem już nawet przypisując z reki id danego kontrahenta, czy porównując kartoteki dla kontrahenta dla którego mam wynik i dla tego gdzie nie mam wyniku, etc.

Proszę o pomoc w rozwiązaniu tego problemu.

Offline pir

  • Aktywny użytkownik
  • ***
  • Wiadomości: 302
  • Reputacja +14/-0
  • Wersja programu: zazwyczaj aktualna chyba że czekam na jakąś poprawkę
Odp: Rozrachunki - zapytanie SQL - nie dla wszystkich kontrahentów
« Odpowiedź #1 dnia: Luty 13, 2018, 10:28:16 »
Zastosowałbym następującą metodologię do zdiagnozowania problemu (pewnie są prostsze, ale to tylko sugestia, a nie złota rada).

1. Założyć podmiot demo.
2. Dodać przykładową operację, która nie wyświetli się za pomocą tego zapytania.
3. Odnaleźć ostatni zapis w tabeli nz__Finanse i zobaczyć, czy w polach powiązanych za pomocą JOIN są dane niezbędne do utworzenia połączenia.
4. Jeżeli dane są, to należałoby sprawdzić, czy aby na pewno zastosowany JOIN jest poprawny. Najpierw zacząć od pierwszego JOIN i dodawać kolejne patrząc, czy któryś nie psuje zapytania.

Forum Użytkownikow Subiekt GT

Odp: Rozrachunki - zapytanie SQL - nie dla wszystkich kontrahentów
« Odpowiedź #1 dnia: Luty 13, 2018, 10:28:16 »