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)
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?....
cj