Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Wyszukiwanie danych w bazie

mieszko22 04 Feb 2019 09:17 570 2
  • #1
    mieszko22
    Level 9  
    Witam
    Piszę zapytanie do bazy postgres poniżej jego treść

    select nier_st.kwota_podstawa, nier_st.okres
    
    from
    eksport_20190108.pod_jedn_opodatkowania_pow_nier pod_nier
    left join eksport_20190108.pod_naleznosci pod_nal on pod_nier.id_jedn_opodatkowania = pod_nal.id_jedn_opodatkowania
    left join eksport_20190108.nieruchomosci_stawki_oplat nier_st on pod_nier.id_nieruchomosc = nier_st.id_nieruchomosc
    
    where
    pod_nier.id_nieruchomosc = 1208593
    and pod_nal.okres_od between '2016-12-31' and '2018-01-01'
    
    group by
    nier_st.kwota_podstawa, nier_st.okres
    


    W czym jest błąd, ponieważ zapytanie zwraca mi wszystkie kombinacje połączeń danych między tabelami, a powinno wyświetlić dane ograniczając je do warunku w części where czyli zakresu pod_nal.okres_od between '2016-12-31' and '2018-01-01' i założeniu podanego id_nieruchomości powinno to być 12 rekordów.

    Dziękuje za pomoc
  • #2
    Dżyszla
    Level 42  
    Nie bardzo rozumiem select pól z tabeli, która jest outerowo dołączana...

    A sprawdzałeś, czy powiązania są poprawne? BTW - czemu 12? jak jest przedział od ostatniego dnia 2016 do pierwszego dnia 2018? Jeśli tam są miesiące, to może to dać również i 14 miesięcy.

    BTW - zamiast grupować można zrobić SELECT DISTINCT zdaje się...

    No i skoro id_nieruchomość jest w pod_nier (wg WHERE) to po co tabela pod_nal do wyciągania (wg JOIN .. ON)?
  • #3
    Prod-Harm
    Level 9  
    Zmień left na inner join, a więc:

    Code: sql
    Log in, to see the code