• 4 odgovora
  • 3.140 pregleda
Upit za brutobilans stanja? 08.11.2008. u 09:46 · pre 218 meseci #1
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!
Potpis
Zgoran
Re: Upit za brutobilans stanja? 08.11.2008. u 10:42 · pre 218 meseci #2
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.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Upit za brutobilans stanja? 08.11.2008. u 20:39 · pre 218 meseci #3
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'.
Re: Upit za brutobilans stanja? 10.11.2008. u 12:40 · pre 218 meseci #4
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.
Potpis
Zgoran
Re: Upit za brutobilans stanja? 10.11.2008. u 15:05 · pre 218 meseci #5
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
Potpis
http://www.montaznekuce.rs
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme