to su ti knjigovodstvene metode za ulaz izlaz robe u firmu
a na osnovu kojih se kasnije računa nabavna cena
posto vidim da radis program za ulaz, izlaz robe i fakturisanje
bilo bi ti mnogo lakse da si sve to stavio u jednu tabelu i
da si samo stavio oznaku da li je to ulaz ili izlaz
ili jos bolje, da si taj atribut ulaz izlaz digao na nivo više
a sto se tice nezvanicnih i zvanicnih faktura, to najbolje da si
razdvojio u razlicite tabele sa identičnom strukturom i automatski
bi imao mnogo bolju kontrolu nad podacima
ne bitno, sad kako je tako je
@srki ti je dao jedan dobar odgovor za upit
evo ti jos jedan, ovo sam pisao iz glave
verujem da ces uskladiti prema tvojoj bazi
Code:
declare @stanje TABLE
(
id_artikal int,
Sifra_Artikla NVARCHAR(10),
Naziv_Artikla NVARCHAR(50),
ulazZ NUMERIC(18,4),
ulazNZ NUMERIC(18,4),
IzlazZ NUMERIC(18,4),
IzlazNZ NUMERIC(18,4)
)
INSERT INTO @stanje(id_artikal, sifra_artikla, naziv_Artikla, ulazZ, ulazNZ, izlazN, izlazNZ)
SELECT ID_Artikal, Sifra_Artikla, Naziv_Artikla,
(CASE WHEN Zvanican=1 THEN
ISNULL(SUM(Kolicina), 0.00)
ELSE 0.00
END) AS UlazZ,
(CASE WHEN Zvanican=0 THEN /*ili Zvanican IS NULL */
ISNULL(SUM(Kolicina), 0.0000)
ELSE 0.0000
END) AS UlazNZ, 0.00 IzlazZ, 0.00 IzlazNZ
FROM Artikli art
LEFT JOIN ulazi
LEFT JOIN ulazi_data
WHERE <uslovi>
UNION ALL
SELECT ID_Artikal, Sifra_Artikla, Naziv_Artikla,
0.00 UlazZ, 0.00 UlazNZ,
(CASE WHEN Zvanican=1 THEN
ISNULL(SUM(Kolicina), 0.00)
ELSE 0.00
END) AS IzlazZ,
(CASE WHEN Zvanican=0 THEN /*ili Zvanican IS NULL */
ISNULL(SUM(Kolicina), 0.0000)
ELSE 0.0000
END) AS IzlazNZ
FROM Artikli art
LEFT JOIN izlazi
LEFT JOIN izlazi_data
WHERE <uslovi>
GROUP BY ID_Artikal, Sifra_Artikla, Naziv_Artikla,
i na kraju
Code:
select ID_Artikal, Sifra_Artikla, Naziv_Artikla,
SUM(UlazZ)-SUM(IzlazZ) StanjeZ,
SUM(UlazNZ)-SUM(IzlazNZ) StanjeNZ
FROM @stanje
GROUP BY ID_Artikal, Sifra_Artikla, Naziv_Artikla,
ORDER BY Sifra_Artikla, Naziv_Artikla,