[ gogozec @ 13.03.2014. 22:35 ] @
Poštovanje,

Može li mi netko pomoći oko ovog zadatka:

Imam 4 tabele, sve imaju zajednički ključ 'Šifra' i 'Naziv' kao i količinu
Trebam izvući sve podatke iz svih polja i sumirati ponaosob svaku šifru.

Primjer:


Šifra, Naziv, T1Količina,T2Količina,T3Količina,T4Količina
1 Art1 10 2 4 5,5
itd.

Kako da izvučem sve podatke iz sve četiri tabele, i da ih sumiram ukoliko se podudare šifre???

Unaprijed Hvala!!!





[ BezPanike @ 14.03.2014. 07:03 ] @
Pomoću CTE:
Code:
WITH S AS (
    SELECT Šifra, Naziv, Količina
    FROM T1
    UNION ALL
    SELECT Šifra, Naziv, Količina
    FROM T2
    UNION ALL
    SELECT Šifra, Naziv, Količina
    FROM T3
    UNION ALL
    SELECT Šifra, Naziv, Količina
    FROM T4
)
SELECT Šifra, Naziv, SUM(Količina)
FROM S
GROUP BY Šifra, Naziv
[ gogozec @ 14.03.2014. 07:59 ] @
Kad ovo unesem na konkretnom primjeru,

WITH S AS (SELECT SifraMat AS Šifra, NazivMat AS naziv, Kolicina
FROM RacuniOpis
UNION ALL
SELECT Sifmat AS Šifra, NazivMat AS Naziv, Kolicina
FROM prijemsmal
UNION ALL
SELECT sifmat AS Šifra, Nazivmat as Naziv, Kolicina
FROM inventsmal)
SELECT Šifra, Naziv, SUM(Kolicina)
FROM S
GROUP BY Šifra, Naziv

Javlja mi 'incorect syntax near keyword 'AS'
[ Dusan Kondic @ 14.03.2014. 08:05 ] @
Da li ti se red pre WITH-a završava tačkazarezom?
Stavi
Code:
;WITH S AS ...
[ gogozec @ 14.03.2014. 08:18 ] @
Gledaj,

Iz VB.net-a šaljem upit prema sql-u gdje mi treba povratna informacija o svim količinama.
Tako da mi ne treba ovakav oblik upita, jer mi u svakom slučaju izbaciva grešku.
[ gogozec @ 14.03.2014. 08:21 ] @
Rezultat bi trebalo da izgleda ovako nenako:
Šifra Naziv Količina1 količina2 količina3
--1---Art1-----10-------20-------30
--2---Art2-----50-------12-------40
itd.

[ BezPanike @ 14.03.2014. 12:18 ] @
Daj nam strukturu tabela i šta tačno želiš da dobiješ kao rezultat, ako želiš da ti pomognemo.
Malo je nezgodno pisati upite za "ovako nekako"...
[ gogozec @ 14.03.2014. 15:01 ] @
Ovo je to što sam zatekao i trebam napraviti stanje iz ove tri tabele, postoji i četvrta koja je identična sa tabelom RacuniOpis samo se zove RacuniOpisSekundarna.
Stanje treba da izgleda kao što sam naveo u prethodnim postovima.
U svakoj od tih tabela zajednički je ŠifraArtikla ali se u RacunimaOpis zove SifraMat a u ostale dvije je SifMat.


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RacuniOpis]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[RacuniOpis]
GO

CREATE TABLE [dbo].[RacuniOpis] (
[BrojRac] [int] NULL ,
[SifraMat] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[NazivMat] [nvarchar] (100) COLLATE Croatian_CI_AS NULL ,
[JedMjere] [nvarchar] (5) COLLATE Croatian_CI_AS NULL ,
[Tarifa] [money] NULL ,
[Cijena] [money] NULL ,
[Kolicina] [money] NULL ,
[Iznos] [money] NULL ,
[IznosP] [money] NULL ,
[SifraTarife] [nvarchar] (20) COLLATE Croatian_CI_AS NULL ,
[Datum] [smalldatetime] NULL ,
[IznosPP] [money] NULL ,
[IznosPu] [money] NULL ,
[IznosPDV] [money] NULL ,
[SifraOp] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Osnovica] [money] NULL ,
[Knizen] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[SifPPU] [nvarchar] (35) COLLATE Croatian_CI_AS NULL ,
[Tarifa2] [money] NULL ,
[Clan] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Godina] [smallint] NULL ,
[Placanje] [nvarchar] (25) COLLATE Croatian_CI_AS NULL ,
[Nabavna] [money] NULL ,
[OPU] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Redni] [int] NULL ,
[Grupa] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[BrojSklad] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Reg] [bit] NULL ,
[Vrijeme] [datetime] NULL ,
[Sank] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[BrojFisk] [int] NULL ,
[FiskGreška] [nvarchar] (5) COLLATE Croatian_CI_AS NULL ,
[TotalFisk] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Reklamiran] [bit] NULL ,
[SifKom] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Fiskaliziran] [bit] NULL ,
[Opis] [nvarchar] (25) COLLATE Croatian_CI_AS NULL ,
[FiskNaziv] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[PLU] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[CijenaBezPDV] [money] NULL ,
[CijenaSaPopustom] [money] NULL ,
[OrgJed] [int] NULL
) ON [PRIMARY]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PrijemSMal]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PrijemSMal]
GO

CREATE TABLE [dbo].[PrijemSMal] (
[BSkladP] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[Godina] [nvarchar] (4) COLLATE Croatian_CI_AS NULL ,
[BrojPrij] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[SifMat] [nvarchar] (20) COLLATE Croatian_CI_AS NULL ,
[NazivMat] [nvarchar] (240) COLLATE Croatian_CI_AS NULL ,
[JedMjere] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Kolicina] [money] NULL ,
[JedCijena] [money] NULL ,
[Rabat] [money] NULL ,
[IznRabat] [money] NULL ,
[zavisni] [money] NULL ,
[IznZav] [money] NULL ,
[Zavisni2] [money] NULL ,
[IznZav2] [money] NULL ,
[Marza] [money] NULL ,
[IznMarza] [money] NULL ,
[Nabavna] [money] NULL ,
[Knizeno] [nvarchar] (2) COLLATE Croatian_CI_AS NULL ,
[Storno] [nvarchar] (2) COLLATE Croatian_CI_AS NULL ,
[PDV] [money] NULL ,
[PDVIzn] [money] NULL ,
[NabJed] [money] NULL ,
[PDVJed] [money] NULL ,
[MPC] [money] NULL ,
[rEDNI] [int] NULL ,
[Rab2] [money] NULL ,
[Irab2] [money] NULL ,
[Malcijena] [money] NULL ,
[Vp] [money] NULL ,
[VpUk] [money] NULL ,
[Zavisni3] [money] NULL ,
[IznZavisni3] [money] NULL ,
[Zavisni4] [money] NULL ,
[IznZavisni4] [money] NULL ,
[OrgJed] [int] NULL ,
[SifDob] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Dobavljač] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Datum] [smalldatetime] NULL
) ON [PRIMARY]
GO

f exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InventSMal]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[InventSMal]
GO

CREATE TABLE [dbo].[InventSMal] (
[Godina] [nvarchar] (4) COLLATE Croatian_CI_AS NULL ,
[BrojInvent] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[BrSklad] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[SifMat] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[NazivMat] [nvarchar] (80) COLLATE Croatian_CI_AS NULL ,
[Kolicina] [money] NULL ,
[Cijena] [money] NULL ,
[Knizen] [bit] NULL ,
[Storno] [bit] NULL ,
[TBroj] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[TStopa] [money] NULL ,
[NabCijena] [money] NULL ,
[RedniBroj] [bigint] NULL ,
[Datum] [smalldatetime] NULL
) ON [PRIMARY]
GO

[ BezPanike @ 15.03.2014. 07:23 ] @
Da u posebnim kolonama dobiješ zbir iz svake tabele, tj Kolicina1 je zbir svih količina iz tabele [RacuniOpis], Kolicina2 je zbir svih kolicina iz tabele [PrijemSMal], a Kolicina3 je zbir svih kolicina iz tabele [InventSMal], onda je upit ovakav:
Code:
;WITH S AS (
SELECT SifraMat as Sifra, NazivMat AS Naziv, Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3
FROM RacuniOpis
UNION ALL
SELECT SifMat as Sifra, NazivMat AS Naziv, 0 AS Kolicina1, Kolicina AS Kolicina2, 0 AS Kolicina3
FROM PrijemSMal
UNION ALL
SELECT SifMat as Sifra, NazivMat AS Naziv, 0 AS Kolicina1, 0 AS Kolicina2, Kolicina AS Kolicina3
FROM InventSMal
)
SELECT Sifra, Naziv, SUM(Kolicina1) AS Kolicina1, SUM(Kolicina2) AS Kolicina2, SUM(Kolicina3) AS Kolicina13
FROM S
GROUP BY Sifra, Naziv;
[ gogozec @ 15.03.2014. 08:01 ] @
Ovo mi se čini da je ok, ali mi izbaciva grešku. Radim na SQL2000 kroz njegove query-je. Ovo sa With S mi daje grešku 'incorect syntax near keyword AS'
[ BezPanike @ 15.03.2014. 11:28 ] @
CTE nije poržan za SQL Server 2000.

Probaj ovako:
Code:
SELECT Sifra, Naziv, SUM(Kolicina1) AS Kolicina1, SUM(Kolicina2) AS Kolicina2, SUM(Kolicina3) AS Kolicina13
FROM (
    SELECT SifraMat as Sifra, NazivMat AS Naziv, Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3
    FROM RacuniOpis
    UNION ALL
    SELECT SifMat as Sifra, NazivMat AS Naziv, 0 AS Kolicina1, Kolicina AS Kolicina2, 0 AS Kolicina3
    FROM PrijemSMal
    UNION ALL
    SELECT SifMat as Sifra, NazivMat AS Naziv, 0 AS Kolicina1, 0 AS Kolicina2, Kolicina AS Kolicina3
    FROM InventSMal
) AS S
GROUP BY Sifra, Naziv;
[ gogozec @ 15.03.2014. 12:42 ] @
SVAKA ČAST.

Ovo radi perfektno!
[ gogozec @ 20.03.2014. 14:12 ] @
Može li još jedna mala pomoć?

Kako da ovom svemu pridružim i cijenu koja je u vezi sa ovim tabelama samo sa šifrom artikla i nazivom.
Ovo je kod koji radi:

SELECT TOP 100 PERCENT Sifra, Naziv, Godina, sklad, SUM(Kolicina1) AS Komerc, SUM(Kolicina2) AS Ulaz, SUM(Kolicina3) AS Početno, SUM(Kolicina4)
AS PrimoP
FROM (SELECT SifraMat AS Sifra, NazivMat AS Naziv, Godina, brojsklad AS sklad, Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4
FROM RacuniOpis
UNION ALL
SELECT SifMat AS Sifra, NazivMat AS Naziv, Godina, bskladP AS sklad, 0 AS Kolicina1, Kolicina AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4
FROM PrijemSMal
UNION ALL
SELECT SifMat AS Sifra, NazivMat AS Naziv, Godina, brsklad AS sklad, 0 AS Kolicina1, 0 AS Kolicina2, Kolicina AS Kolicina3, 0 AS Kolicina4
FROM InventSMal
UNION ALL
SELECT Sifra AS Sifra, NazivMat AS Naziv, Godina, brsklad AS sklad, 0 AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, Kolicina AS Kolicina4
FROM PrimoPS) S
WHERE (Godina = '2014')
GROUP BY Sifra, Naziv, Godina, sklad
ORDER BY Sifra


Ovo je struktura tabele artikli i trebam spojiti polje MALCIJENA


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Artikli]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Artikli]
GO

CREATE TABLE [dbo].[Artikli] (
[Sifra] [nvarchar] (26) COLLATE Croatian_CI_AS NOT NULL ,
[Naziv] [nvarchar] (150) COLLATE Croatian_CI_AS NULL ,
[JedMj] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[ProcRabSkupine] [money] NULL ,
[JedCijena] [decimal](19, 6) NULL ,
[MalCijena] [money] NULL ,
[SifDob] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Dobavljac] [nvarchar] (40) COLLATE Croatian_CI_AS NULL ,
[Opis] [ntext] COLLATE Croatian_CI_AS NULL ,
[TBPU] [money] NULL ,
[SifTBPU] [nvarchar] (3) COLLATE Croatian_CI_AS NULL ,
[TBPNP] [money] NULL ,
[SifTBPNP] [nvarchar] (3) COLLATE Croatian_CI_AS NULL ,
[TBPDV] [money] NULL ,
[SifTBPDV] [nvarchar] (3) COLLATE Croatian_CI_AS NULL ,
[TBP1] [money] NULL ,
[TBP2] [money] NULL ,
[TBP3] [money] NULL ,
[Diskont] [money] NULL ,
[Nabavna] [decimal](19, 4) NULL ,
[ZadnjaC] [money] NULL ,
[bARCODE] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Proiz] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[SifP] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Grupa] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Kalk] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Vrsta] [bit] NULL ,
[RabSkupina] [nvarchar] (10) COLLATE Croatian_CI_AS NULL ,
[SifTBPP] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Kolicina] [int] NULL ,
[DatumZadNab] [smalldatetime] NULL ,
[DatumZadIzm] [smalldatetime] NULL ,
[ZadnjaMarz] [money] NULL ,
[Brand] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[StraniNaziv1] [nvarchar] (100) COLLATE Croatian_CI_AS NULL ,
[StraniNaziv2] [nvarchar] (100) COLLATE Croatian_CI_AS NULL ,
[JedPak] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[KolPak] [money] NULL ,
[CijenaPak] [money] NULL ,
[BarPak] [nvarchar] (24) COLLATE Croatian_CI_AS NULL ,
[JedPal] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[KolPal] [money] NULL ,
[CijenaPal] [money] NULL ,
[BarPal] [nvarchar] (24) COLLATE Croatian_CI_AS NULL ,
[ProdNo] [nvarchar] (24) COLLATE Croatian_CI_AS NULL ,
[NaSklad] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[BrojSklad] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Minimal] [money] NULL ,
[Maximal] [money] NULL ,
[KatalBroj] [nvarchar] (25) COLLATE Croatian_CI_AS NULL ,
[BrojRac] [bigint] NULL ,
[Polica1] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Polica2] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[FiskNaziv] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Marka] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Model] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[Tip] [nvarchar] (50) COLLATE Croatian_CI_AS NULL ,
[FiskPLU] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Tezinski] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Tezina] [bit] NULL ,
[MalNabavna] [money] NULL ,
[MalJedCijena] [money] NULL ,
[Država] [nvarchar] (25) COLLATE Croatian_CI_AS NULL ,
[pIznos] [money] NULL ,
[Kategorija] [nvarchar] (25) COLLATE Croatian_CI_AS NULL ,
[Unarudbi] [bit] NULL ,
[ZZONabavna] [money] NULL ,
[ZZOŠifra] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[ZZOVPC] [money] NULL ,
[ATCŠifra] [nvarchar] (15) COLLATE Croatian_CI_AS NULL ,
[Godina] [smallint] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO



[ BezPanike @ 22.03.2014. 06:00 ] @
Da još malo komplikujemo :)

Code:
SELECT K.Sifra, Artikli.Naziv, Artikli.MalCijena,
        K.Godina, K.sklad, K.Komerc, K.Ulaz, K.Početno, K.PrimoP
FROM 
(
    SELECT TOP 100 PERCENT Sifra, Godina, sklad, SUM(Kolicina1) AS Komerc, SUM(Kolicina2) AS Ulaz, SUM(Kolicina3) AS Početno, SUM(Kolicina4) AS PrimoP
    FROM (
        SELECT SifraMat AS Sifra, Godina, brojsklad AS sklad, Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4
        FROM RacuniOpis
        UNION ALL
        SELECT SifMat AS Sifra, Godina, bskladP AS sklad, 0 AS Kolicina1, Kolicina AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4
        FROM PrijemSMal
        UNION ALL
        SELECT SifMat AS Sifra, Godina, brsklad AS sklad, 0 AS Kolicina1, 0 AS Kolicina2, Kolicina AS Kolicina3, 0 AS Kolicina4
        FROM InventSMal
        UNION ALL
        SELECT Sifra AS Sifra, Godina, brsklad AS sklad, 0 AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, Kolicina AS Kolicina4
        FROM PrimoPS
    ) S
    WHERE (Godina = '2014')
    GROUP BY Sifra, Godina, sklad
) AS K INNER JOIN Artikli ON K.Sifra = Artikli.Sifra
ORDER BY Sifra
[ gogozec @ 22.03.2014. 17:21 ] @
Ovo je super fazon.

Ovako sam se ja snašao dok nisam dobio odgovor:

SELECT TOP 100 PERCENT Sifra, Naziv, Godina, sklad, Cijena, SUM(Kolicina1) AS Komerc, SUM(Kolicina2) AS Ulaz, SUM(Kolicina3) AS Početno, SUM(Kolicina4)
AS PrimoP
FROM (SELECT A.SifraMat AS Sifra, A.NazivMat AS Naziv, A.Godina, A.brojsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, A.Kolicina AS Kolicina1, 0 AS Kolicina2,
0 AS Kolicina3, 0 AS Kolicina4
FROM RacuniOpis A LEFT OUTER JOIN
Artikli B ON a.SifraMat = b.Sifra
UNION ALL
SELECT A.SifMat AS Sifra, A.NazivMat AS Naziv, A.Godina, A.bskladP AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 0 AS Kolicina1, A.Kolicina AS Kolicina2,
0 AS Kolicina3, 0 AS Kolicina4
FROM PrijemSMal A LEFT OUTER JOIN
Artikli B ON a.SifMat = b.Sifra
UNION ALL
SELECT A.SifMat AS Sifra, A.NazivMat AS Naziv, A.Godina, A.brsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 0 AS Kolicina1, 0 AS Kolicina2,
A.Kolicina AS Kolicina3, 0 AS Kolicina4
FROM InventSMal A LEFT OUTER JOIN
Artikli B ON a.SifMat = b.Sifra
UNION ALL
SELECT A.Sifra AS Sifra, A.NazivMat AS Naziv, A.Godina, A.brsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 0 AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3,
A.Kolicina AS Kolicina4
FROM PrimoPS A LEFT OUTER JOIN
Artikli B ON a.Sifra = b.Sifra) S
WHERE (Godina = '2014')
GROUP BY Sifra, Naziv, Godina, sklad, Cijena
ORDER BY Sifra


Ali sa ovim drugim selektom mogu sabrati i oduzeti sve.


SVAKA Čast.
[ popmilan76 @ 08.05.2014. 21:46 ] @
Meni treba ovo slicno,samo u paradox tabeli i sa delphijem....
dve tabele,artikli,arhiva.....
gde treba da dobijem upitom tabelu
sifra,artikal,jedinicamere,cena,(sum(artikli.zalihe) as ulaz,sum(arhiva.kolicina) as izlaz, i trenutne zalihe,kao razlika ove dve sume....Hvala unapred
[ gogozec @ 29.05.2014. 09:29 ] @
Eh sad se ovo malo širi.

Trebam uvrstiti kriterije u pojedine SELECT-e i to sam skontao na ovaj način ali mi ne radi:

sFilter = "SELECT Sifra, Naziv, Cijena, (SUM(Kolicina2) + SUM(Kolicina3))-(SUM(Kolicina1) + SUM(Kolicina4)) AS Stanje" & _
" FROM (SELECT A.SifraMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brojsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, A.Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4" & _
" FROM RacuniOpislj A LEFT OUTER JOIN Artikli B ON a.SifraMat = b.Sifra where neskidaj=0" & _
" UNION ALL" & _
" SELECT A.SifMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.bskladP AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 0 AS Kolicina1, A.Kolicina AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4" & _
" FROM PrijemSMal A LEFT OUTER JOIN Artikli B ON a.SifMat = b.Sifra" & _
" UNION ALL" & _
" SELECT A.SifMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 0 AS Kolicina1, 0 AS Kolicina2, A.Kolicina AS Kolicina3, 0 AS Kolicina4" & _
" FROM InventSMal A LEFT OUTER JOIN Artikli B ON a.SifMat = b.Sifra" & _
" UNION ALL" & _
" SELECT A.SifraMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brojsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, A.Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4" & _
" FROM RacuniOpis A LEFT OUTER JOIN Artikli B ON a.SifraMat = b.Sifra where Nadoplata=0)" & _
" WHERE Godina='" & Godina & "' And Sklad='" & SkladLj & "' AND Naziv LIKE '%" & Trim(Naziv) & "%'" & _
" GROUP BY Sifra, Naziv, Cijena" & _
" ORDER BY Sifra"

Izbaciva mi grešku na WHERE klauzuli

Kako da ga zveknem da radi?
[ BezPanike @ 01.06.2014. 12:14 ] @
Fali ti alias za izvedenu tabelu (derived table) - ono AS S

Code:
SELECT Sifra, Naziv, Cijena, (SUM(Kolicina2) + SUM(Kolicina3))-(SUM(Kolicina1) + SUM(Kolicina4)) AS Stanje 
FROM (
    SELECT A.SifraMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brojsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 
            A.Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4 
    FROM RacuniOpislj A LEFT OUTER JOIN 
        Artikli B ON a.SifraMat = b.Sifra 
    where neskidaj=0 
    UNION ALL 
    SELECT A.SifMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.bskladP AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 
            0 AS Kolicina1, A.Kolicina AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4 
    FROM PrijemSMal A LEFT OUTER JOIN 
        Artikli B ON a.SifMat = b.Sifra 
    UNION ALL 
    SELECT A.SifMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 
            0 AS Kolicina1, 0 AS Kolicina2, A.Kolicina AS Kolicina3, 0 AS Kolicina4 
    FROM InventSMal A LEFT OUTER JOIN 
        Artikli B ON a.SifMat = b.Sifra 
    UNION ALL 
    SELECT A.SifraMat AS Sifra, B.Naziv AS Naziv, A.Godina, A.brojsklad AS sklad, ISNULL(B.MalCijena, 0) AS Cijena, 
            A.Kolicina AS Kolicina1, 0 AS Kolicina2, 0 AS Kolicina3, 0 AS Kolicina4 
    FROM RacuniOpis A LEFT OUTER JOIN
         Artikli B ON a.SifraMat = b.Sifra 
    where Nadoplata=0
)  AS S  -- mora da ima alias!
WHERE Godina='2014' And Sklad='1' AND Naziv LIKE '%Naziv%' 
GROUP BY Sifra, Naziv, Cijena 
ORDER BY Sifra

[ gogozec @ 03.06.2014. 10:36 ] @
Svaka čast.
To sam previdio.

Hvala još jednom!