[ Captain Jack @ 29.03.2005. 23:18 ] @
Pokusavam da napravim stored proceduru koja se sastoji iz dve tabele NALOZI i PLACANJA sa svrhom da mi izlista SVE naloge i prikaze njihova placanja ako ih ima, jer nisu svi nalozi placeni. U query dizajneru (radim front end u accessovom .adp projektu) definisem vezu tipa OUTER JOIN da mi obuhvati sve zapise iz tabele NALOZI i pokaze, naravno pripadajuca placanja iz tabele PLACANJA. E, sad, procedura radi dobro sve dok joj ne postavim parametre, a to su datumi placanja. Kad stavim parametre, tj. da mi pokaze SVE naloge i placanja samo u odabranom periodu kao rezultat dobijem samo one naloge koji su placeni u periodu koji je zadat, a ne sve naloge kao u slucaju bez parametara! Drugim recima, sql server mi vezu OUTER JOIN pretvori de fakto u INNER JOIN, pokazuje samo preklapajuce zapise.. Pokusao sam da ga zavaram pa sam osim parametara, kao kriterijum u tabeli PLACANJA dodao jos i IS NULL za kolonu datum placanja ali i tada ne daje sve naloge mada poveca broj zapisa - ne znam u stvari kako ih je slozio. Code: ALTER PROCEDURE dbo.StoredProcedure1 (@PocetniDatum smalldatetime, @KrajnjiDatum smalldatetime) AS SELECT SUM(dbo.Placanja.IznosPlacanja) AS Expr1, dbo.Nalozi.ID FROM dbo.Placanja RIGHT OUTER JOIN dbo.Nalozi ON dbo.Placanja.ID = dbo.Nalozi.ID GROUP BY dbo.Nalozi.ID, dbo.Placanja.DatumPlacanja HAVING (dbo.Placanja.DatumPlacanja BETWEEN @PocetniDatum AND @KrajnjiDatum) OR (dbo.Placanja.DatumPlacanja IS NULL) Ovakav problem sam u accessu resavao tako sto sam snimao poseban parametarski query za tabelu PLACANJA i poseban query NALOZI pa sam u accessovom query dizajneru spajao querije a ne tabele, i onda su veze radile pravilno. U accessovom adp projektu ne mogu da se u dizajneru spajaju procedure a obicni pogledi (view) nemaju parametre...Kako resavate slicne stvari? Da nisam pogresio u sastavljanju procedure?..Mozda trebaju da idu in line funkcije umesto procedure?.... |