[ gogozec @ 08.11.2008. 09:46 ] @
Koristim SQL View za selekciju podataka iz određene tabele:

SELECT dbo.Analit.Godina, SUM(dbo.Analit.Duguje) AS Duguje, SUM(dbo.Analit.Potrazuje) AS Potrazuje, dbo.Analit.DatumKnjiz, dbo.Konto.NazivKon,
LEFT(dbo.Analit.SintKonto, 1) AS Klasa
FROM dbo.Analit INNER JOIN
dbo.Konto ON dbo.Analit.SintKonto = dbo.Konto.SifKon
GROUP BY LEFT(dbo.Analit.SintKonto, 1), dbo.Konto.NazivKon, dbo.Analit.DatumKnjiz, dbo.Analit.Godina

i tu trebam izvući još dva polja koja se odnose na polja duguje i potrazuje gdje kriterij treba biti nekakvo početno stanje gdje kriterij za ta dva polja mogu izvući i dbo.analit.vrstaNaloga.

Bilo kakva pomoć dobro došla.

Unaprijed Hvala!
[ mmix @ 08.11.2008. 10:42 ] @
Koristi HAVING klauzulu


SELECT dbo.Analit.Godina, SUM(dbo.Analit.Duguje) AS Duguje, SUM(dbo.Analit.Potrazuje) AS Potrazuje, dbo.Analit.DatumKnjiz, dbo.Konto.NazivKon,
LEFT(dbo.Analit.SintKonto, 1) AS Klasa
FROM dbo.Analit INNER JOIN
dbo.Konto ON dbo.Analit.SintKonto = dbo.Konto.SifKon
GROUP BY LEFT(dbo.Analit.SintKonto, 1), dbo.Konto.NazivKon, dbo.Analit.DatumKnjiz, dbo.Analit.Godina
HAVING SUM(dbo.Analit.Duguje) > 10000

s tim sto uslov moze da dodje iz neke druge tabele, ne mora biti konstanta.
[ sparc @ 08.11.2008. 20:39 ] @
SELECT dbo.Analit.Godina, SUM(dbo.Analit.Duguje) AS Duguje, SUM(dbo.Analit.Potrazuje) AS Potrazuje, dbo.Analit.DatumKnjiz, dbo.Konto.NazivKon,
SUM(CASE WHEN dbo.analit.vrstaNaloga = 'PS' THEN dbo.analit.duguje ELSE 0 END) AS PocetnoDuguje,
SUM(CASE WHEN dbo.analit.vrstaNaloga = 'PS' THEN dbo.analit.potrazuje ELSE 0 END) AS PocetnoPotrazuje,
SUM(CASE WHEN dbo.analit.vrstaNaloga <> 'PS' THEN dbo.analit.duguje ELSE 0 END) AS TekuceDuguje,
SUM(CASE WHEN dbo.analit.vrstaNaloga <> 'PS' THEN dbo.analit.potrazuje ELSE 0 END) AS TekucePotrazuje,
LEFT(dbo.Analit.SintKonto, 1) AS Klasa
FROM dbo.Analit INNER JOIN
dbo.Konto ON dbo.Analit.SintKonto = dbo.Konto.SifKon
GROUP BY LEFT(dbo.Analit.SintKonto, 1), dbo.Konto.NazivKon, dbo.Analit.DatumKnjiz, dbo.Analit.Godina

mislim da te mmix nije dobro razumeo, ovo je sigurno resenje tvog problema ako ti je Vrsta naloga za pocetno stanje 'PS'.
[ gogozec @ 10.11.2008. 12:40 ] @
Prijedlog sa >10000 nije prošao ,
sparc-ov prijedlog radi ali mi SQL izbaciva grešku kod pokretanja view-a.
Greška :The Query Designer does not support the CASE SQL construct.
Ako može mala pomoć oko greškice. Hvala!
Inače odličan prijedlog i vjerovatno ću ga koristiti u buduće.
[ .:Marvin:. @ 10.11.2008. 15:05 ] @
Cekaj, jel koristis MS SQL Server?

Da li ti radi kada pustis kao upit?

Ako da, pokusaj da pustis u Query Analizeru nesto kao:

CREATE VIEW BILANS
AS
SELECT dbo.Analit.Godina, SUM(dbo.Analit.Duguje) AS Duguje, SUM(dbo.Analit.Potrazuje) AS Potrazuje, dbo.Analit.DatumKnjiz, dbo.Konto.NazivKon,
SUM(CASE WHEN dbo.analit.vrstaNaloga = 'PS' THEN dbo.analit.duguje ELSE 0 END) AS PocetnoDuguje,
SUM(CASE WHEN dbo.analit.vrstaNaloga = 'PS' THEN dbo.analit.potrazuje ELSE 0 END) AS PocetnoPotrazuje,
SUM(CASE WHEN dbo.analit.vrstaNaloga <> 'PS' THEN dbo.analit.duguje ELSE 0 END) AS TekuceDuguje,
SUM(CASE WHEN dbo.analit.vrstaNaloga <> 'PS' THEN dbo.analit.potrazuje ELSE 0 END) AS TekucePotrazuje,
LEFT(dbo.Analit.SintKonto, 1) AS Klasa
FROM dbo.Analit INNER JOIN
dbo.Konto ON dbo.Analit.SintKonto = dbo.Konto.SifKon
GROUP BY LEFT(dbo.Analit.SintKonto, 1), dbo.Konto.NazivKon, dbo.Analit.DatumKnjiz, dbo.Analit.Godina