Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Selektiranje podataka iz više tablica sa SUM funkcijom

  • 18 odgovora
  • 7.002 pregleda

Najnovija ↓

Selektiranje podataka iz više tablica sa SUM funkcijom 13.03.2014. u 23:35 · pre 153 meseca #1
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!!!





Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 14.03.2014. u 08:03 · pre 153 meseca #2
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
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 14.03.2014. u 08:59 · pre 153 meseca #3
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'
Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 14.03.2014. u 09:18 · pre 153 meseca #5
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.
Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 14.03.2014. u 09:21 · pre 153 meseca #6
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.

Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 14.03.2014. u 16:01 · pre 153 meseca #8
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

Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 15.03.2014. u 08:23 · pre 153 meseca #9
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;
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 15.03.2014. u 12:28 · pre 153 meseca #11
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;
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 20.03.2014. u 15:12 · pre 153 meseca #13
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



Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 22.03.2014. u 07:00 · pre 153 meseca #14
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
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 22.03.2014. u 18:21 · pre 153 meseca #15
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.
Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 08.05.2014. u 22:46 · pre 151 mesec #16
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
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 29.05.2014. u 10:29 · pre 151 mesec #17
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?
Potpis
Zgoran
Re: Selektiranje podataka iz više tablica sa SUM funkcijom 01.06.2014. u 13:14 · pre 151 mesec #18
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

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme