• 1 odgovor
  • 2.922 pregleda
Svi datumi i unosi 04.08.2015. u 14:11 · pre 136 meseci #1
Imam dvije tablice Kalendar i sati rada.
U tablici Kalendar imam polje datum i popunjena je sa svim danima(datumima) do 2099. godine.
U tablici sati rada imam polja sifra_radnika,datum,satnica i sati.

Trebam prikazati recimo sve datume u 7. mjesecu i povezati unose na taj datum, ako nije bilo unosa za taj dan treba mi biti pratni red tj.samo se treba prikazati datum.

Code:


SELECT

Kalendar.datum AS [Kalendar datum],
stavke.datum,
stavke.sifra_radnika,
stavke.satnica

FROM 

Kalendar

LEFT OUTER JOIN [Sati rada] stavke ON

stavke.datum = Kalendar.datum
    
WHERE

kalendar.datum BETWEEN '07-01-2015' AND '07-31-2015'
AND
stavke.sifra_radnika IN ('886')

ORDER BY 
stavke.sifra_radnika,
kalendar.datum

Re: Svi datumi i unosi 04.08.2015. u 20:15 · pre 136 meseci #2
Probaj da prebacis uslov "AND Stavke.Sifra_radnika IN (.....). LEFT JOIN se ne ponasa dobro kad kolone is LEFT strane stavis u WHERE.
Code:


SELECT Kalendar.datum AS [Kalendar datum]
  ,stavke.datum
  ,stavke.sifra_radnika
  ,stavke.satnica
FROM Kalendar
LEFT OUTER JOIN [Sati rAda] stavke 
    ON stavke.datum = Kalendar.datum 
    AND stavke.sifra_radnika IN ( '886' ) -- ovo ogranicava LEFT JOIN na  IN (..)
WHERE Kalendar.datum BETWEEN '07-01-2015' AND '07-31-2015'
    --AND stavke.sifra_radnika IN ('886') -- ovo ne treba da bude ovde
    -- Kad koristis LEFT JOIN onda u WHERE mozes da stavis samokolone iz FROM
ORDER BY stavke.sifra_radnika
  ,Kalendar.datum;



Pazi, ako unutar IN kosistis neki SELECT, na primer IN (SELECT SifraRAdnika FROM Radnici WHERE Pogon = 'xx'), pazi dobro da taj SELECT ne vraca ni jedan NULL rekord.


Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme