Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Možda malo složeniji upit?! Help...

[es] :: Baze podataka :: Možda malo složeniji upit?! Help...

Strane: 1 2

[ Pregleda: 3599 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Možda malo složeniji upit?! Help...06.07.2006. u 12:29 - pre 216 meseci
Pozdrav,

imam problem za koji mi treba malo stručnija pomoć. Naime, radi se o ovome, od dve tabele, ULAZ i IZLAZ, sam napravio jednu koristeći operator UNION. Taj SQL izgleda ovako:
Code:

select DATUM,SIFRAARTIKLAUlaz,NAZIVARTIKLA,JEDINICAMERE,KOLICINAULAZ,0 as KOLICINAIZLAZ
from ULAZ
union
select DATUM,SIFRAARTIKLA,NAZIVARTIKLA,JEDINICAMERE,0,KOLICINAIZLAZ
from IZLAZ
order by DATUM,SIFRAARTIKLAUlaz

Tako da proizvod jednog takvog upita je tabela sa kolonama:
DATUM,SIFRAARTIKLAUlaz,NAZIVARTIKLA,JEDINICAMERE,KOLICINAULAZ,KOLICINAIZLAZ

Kad se ona napuni izgleda otprilike ovako:
26/06/2006|10001|Brasno|Kg|100|0
26/06/2006|10002|Co|Kg|100|0
26/06/2006|10001|Brasno|Kg|0|54
26/06/2006|10002|Co|Kg|0|25


Sad ono što meni treba. Hteo bih iz te tabele, koja je dobijena gore navedenim SQL kodom, da izvučem sve šifre i dobijem ukupno stanje za taj artikl. Da u tabeli to izgleda ovako:

10001|Brasno|100|54|46
10002|Co|100|25|75


Znači, da dobijem kolone šifraartikla,nazivartikla,ulaz,izlaz,stanje, s tim, što će ULAZ biti zbir svih ulaza za
taj artikl, a IZLAZ biti zbir izlaza za taj artikl, dok stanje bi odradio iz delphi-ja?!!!
Rezime, to bi otprilike bio upit da se vidi stanje svih artikala u magacinu?!!!

Nadam se da ćete moći pomoći, ako nešto nisam jasno postavio, recite, da objasnim i približim na taj način problemmm...
Hvala unapred..

Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 14:22 - pre 216 meseci
Vec si uradio skoro sve.
Tvoj SQL statment MORAS da sacuvas kao view, pod nekim imenom, recimo ovako:

CREATE VIEW vwUlazIzlaz
AS
select DATUM, SIFRAARTIKLAUlaz AS SifraArtikla, NAZIVARTIKLA, JEDINICAMERE, KOLICINAULAZ, 0 as KOLICINAIZLAZ
from ULAZ
union
select DATUM, SIFRAARTIKLA, NAZIVARTIKLA, JEDINICAMERE, 0 AS KOLICINAULAZ , KOLICINAIZLAZ
from IZLAZ

ORDER BY sam izbacio, ne treba ti kad radis UNION

Imas dakle view vwUlazIzlaz koji prikazuje sve transakcije u tabelama ULAZ i IZLAZ. Kako dobiti ukupne zbirove? Pa pomocu agregatnih funkcija. U principu, treba da uradis nesto ovako:

CREATE VIEW vwStanje
AS
SELECT SifraArtikla, NAZIVARTIKLA, JEDINICAMERE,
SUM(KOLICINAULAZ) AS UkupanUlaz,
SUM(KOLICINAIZLAZ) AS UkupanIZlaz
FROM vwUlazIzlaz
GROUP BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE
ORDER BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE

Sada ti je Stanje u nekom sledecm koraku Stanje = UkupanUaz - UkupanIzlaz. Ovo mozes da izracunas i u SELECT iskazu:

CREATE VIEW vwSTanje
AS
SELECT SifraArtikla, NAZIVARTIKLA, JEDINICAMERE,
SUM(KOLICINAULAZ) AS UkupanUlaz,
SUM(KOLICINAIZLAZ) AS UkupanIZlaz,
STANJE = SUM(KOLICINAULAZ) - SUM(KOLICINAIZLAZ)
FROM vwUlazIzlaz
GROUP BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE
ORDER BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE

Jedini problem sa ovim pristupom su neaktivni artikli. Neaktivni su onio artikliza koje nije bio ni jedan ulaz, i ni jedan izlaz. U tom sluvcaju, UNION view ih nece videti pa se nece pojaviti ni na sumi. Ako je bio bar jedan ulaz, ili bar jedan izlaz (ne mora oba), sve je OK, jedan od komponenti UNIONa ce to pokupiti. Ako hoces da prikazes i neaktivne artikle, treb ati jos jedan view, ovako:

CREATE VIEW vwStanjeSaneaktivnimArtiklima
AS
SELECT A.SifraArtikla, S.NAZIVARTIKLA, S.JEDINICAMERE, S.UkupanUlaz, S.UkupanIZlaz, S.Stanje
FROM Artikli AS A
LEFT JOIN vwSTanje AS S ON A.SifraArtikla = S.SifraArtikla

Neaktivni artikli imace NULL vrednosti za S.UkupanUlaz, S.UkupanIZlaz, S.Stanje, sto se na front endu moze lako pretvoriti u nule (zero)

Mozda bi brza varijanta bila da se STanej izvadi iz vwStanje i da se ubaci u poslednji view:
CREATE VIEW vwUkupanUlazIzlaz
AS
SELECT SifraArtikla, NAZIVARTIKLA, JEDINICAMERE,
SUM(KOLICINAULAZ) AS UkupanUlaz,
SUM(KOLICINAIZLAZ) AS UkupanIZlaz
FROM vwUlazIzlaz
GROUP BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE
ORDER BY SifraArtikla, NAZIVARTIKLA, JEDINICAMERE

CREATE VIEW vwStanjeSaneaktivnimArtiklima
AS
SELECT A.SifraArtikla, S.NAZIVARTIKLA, S.JEDINICAMERE,
S.UkupanUlaz, S.UkupanIZlaz,
S.UkupanUlaz, - S.UkupanIZlaz AS Stanje
FROM Artikli AS A
LEFT JOIN vwSTanje AS S ON A.SifraArtikla = S.SifraArtikla


Prosto i jednostavno ;-)
Tri view-a i gotov posao. Delphi ima samo da prikaze rekorde iz poslednjeg view-a i formatira brojeve (i mozda konvertuje NULL vrednosti u 0)






 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 16:00 - pre 216 meseci
Hvala na odgovoru, a da li bi svi ti pogledi mogli da se ukombinuju s mojim kodom gore i da tako dobijem rešenje,
znači, da izbegnem pravljenje pogleda?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 17:10 - pre 216 meseci
zar ne bi jedno

Code:

SELECT 
  sifra, 
  SUM (ulaz) as ulaz, 
  SUM (izlaz) as izlaz, 
  SUM (ulaz) - SUM (izlaz) as stanje
FROM ulazizlaz
GROUP BY sifra


Dalo bas to sto ti treba?

Izbaci naziv artikla iz te tabele jer je to redudansa a koristi posebnu tabelu sa sifranikom artikala.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 17:37 - pre 216 meseci
Treba ti bar jedan pogled, onaj gde je UNION. I ono sto ti je Broker dao, zahteva UlazIzlaz, a to je tvoj SELECT koji sadrzi UNION.

Ne vidim sta ima lose u kreiranju pogleda. Ako gradis string kroz Delfi pa ga svaki put saljes serveru da to izvrsi, moze biti sporije nego da citas iz pogleda. Ujedno, pogledi dokumentuju sta se desava u bazi, a mogu ih koristiti i druge aplikacije, ili se koriste sa vise mesta iz jedne iste aplikacije.

Ako bi reorganizovao dizajn baze, pa ulaz i izlaz sede u istoj tabeli, kao dve kolone, odna bi moglo bas ovako kako je Broker naveo. Znaci, UlazIzlaz tabela, otprilike ovako:

CRAETETABLE UlazIZlaz AS
(
SifraArtikla int, NOT NULL, FK REFERENCES Artikli.SifraArtikla,
Ulaz money, NOT NUL, Default = 0, CHECK Ulaz>=0
Izlaz money, NOT NULL, Default = 0, CHECK Izlaz>=0
DatumTransakcije datetime, NOT NULL
CHECK ((Ulaz*Izlaz=0) AND (Ulaz>0 OR Izlaz>0))
)

Moras da obezbedis da tacno jedna od kolona (Ulaz,Izlaz) bude nula a druga >0. Ovo znaci a) ne moze u istoj transakciji i ulaz i izlaz b) transakcija koja ima (ulaz=0 AND izlaz=0) nije dozvoljena.

Onda je sve kako je Broker rekao. Ostaje komentar o neaktivnim artiklima. Neki kolege ce se zaliti da tacno polovina kolona ne cuva nikakvu vrednost (=0) ali danas to nije problem, GB nisu skupi.

 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 18:06 - pre 216 meseci
Pozdrav,

za sad ste mi mnogo pomogli. Napravio sam u BP poglede, union dve tabele, pogled za ulaz,izlaz,stanje i iz delphi-ja samo
učitao u dbgrid. Znači, dva pogleda.
Napraviću malu pauzu, dok ne vidim šta sve mogu odraditi sa ovim vašim znanjem, a kad odradim i vidim šta sam dobio javiću kakav je rezultat ili šta mi još treba...

Zahvaljujem se na ovim odgovorima i javljam se za neko kratko vreme...
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 19:07 - pre 216 meseci
Pozdrav,

evo jednog pitanja, naime, napravio sam pogled:
Code:

SELECT DISTINCT sifraartikla AS SifraArtikla, sum(kolicinaulaz) AS Ulaz, sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
GROUP BY sifraartikla;

Na osnovu ovog pogleda, dobijem ovakvu tabelu:
10001|100|25|75
10002|78|15|63
...

Što se iz priloženog vidi da daje ono što treba. E, sad, ako u taj pogled ubacim i NAZIVARTIKLA, nastaje problem???
Code:

SELECT DISTINCT sifraartikla AS SifraArtikla,nazivartikla, sum(kolicinaulaz) AS Ulaz, sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
GROUP BY sifraartikla,nazivartikla;

Tabela koja nastane izgleda ovako:

10001|Brasno|100|0|100
10001|Brasno|0|25|25
...

i tako redom za sve artikle. Meni je cilj da dobijem:

šifra|Naziv|Ulaz|Izlaz|Stanje|
10001|Brasno|100|25|75
10002|Co|25|2|23
10003|Mleko|20|10|10
...


Kako iskombinovati?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 19:24 - pre 216 meseci
Izbaci naziv_artikla iz group by
a vec ti rekoh, naziv artikla ne bi trebao da bude u toj tabeli
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 19:50 - pre 216 meseci
OK, to sam i odradio pogledom:
Code:

SELECT DISTINCT sifraartikla AS SifraArtikla, sum(kolicinaulaz) AS Ulaz, 
sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
GROUP BY sifraartikla;

Jesi mislio da sad napravim novi pogled koji će spojiti tabelu u kojoj su mi naziv i šifre za artikle sa ovim pogledom?
Ili to sve objediniti u jednom pogledu?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

amladjo
Mladen Arbutina
Novi Sad

Član broj: 30160
Poruke: 53
*.ptt.yu.

Sajt: www.dynasoft.rs


Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 21:06 - pre 216 meseci
Probaj:
Code:

SELECT DISTINCT sifraartikla AS SifraArtikla, Max(NazivArtikla) as NazivArtikla,sum(kolicinaulaz) AS Ulaz, 
sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
GROUP BY sifraartikla;
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 21:29 - pre 216 meseci
Pozdrav,

da, to mi je rešilo problem.... Hvala puno...
Sad stvarno odlazim da odmorim mozak....

Još jednom, hvala svima....
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 21:53 - pre 216 meseci
A za sta sluzi DISTINCT u upitu?

Citat:
amladjo: Probaj:
Code:

SELECT DISTINCT sifraartikla AS SifraArtikla, Max(NazivArtikla) as NazivArtikla,sum(kolicinaulaz) AS Ulaz, 
sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
GROUP BY sifraartikla;


Ovo je prilicno cudan pristup resavanju problema. Sta ako je neko greskom ukucao istu sifru, a razlicit naziv artikla?

Jos jednom, naziv_artikla ne treba da se nalazi u tabeli ulaziizlaz.
 
Odgovor na temu

amladjo
Mladen Arbutina
Novi Sad

Član broj: 30160
Poruke: 53
*.ptt.yu.

Sajt: www.dynasoft.rs


Profil

icon Re: Možda malo složeniji upit?! Help...06.07.2006. u 22:56 - pre 216 meseci
Slažem se broker. DISTINCT je potpuno nepotreban.

Ulazizlaz je pogled a ne tabela, neka me loshmiscg ispravi ako grešim.
Zbog toga nazivartikla može da ostane. Ne troši prostor, ali ponekad je bitna informacija na nivou takvog pogleda.

Slažem se i da će ako je u tabelama Ulaz i Izlaz polje NazivArtikla imati problema sa pogrešnim nazivom u krajnjem rezultatu. Ako poseduje posebnu tabelu artikala, što toplo preporučujem - problem neće imati.

Slažem se i da je pristup čudan. Ipak, ako VEĆ ŽELIM da u select izvučem polja koja nisu agregatne funkcije i ne pripadaju "Group by" delu, jednostavno ih stavim kao Max().
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...07.07.2006. u 01:31 - pre 216 meseci
Pozdrav,

vrativši se iz grada pogledah, pa rekoh da odgovorim... Imam još toliko koncetracije.
DISTINCT sam izbacio jer, slažem se s vama, potpuno je nepotreban, samo sam zaboravio
to napisati u prethodnom postu.

Dalje, ulazizlaz je pogled i samo ga učitavam iz delphi-a u dbgrid. Napravio sam
posebnu tabelu u koju se unose nazivi i šifre artiklova. Tako da, kad se pune tabele
ulaz i izlaz, šifre i nazivi se vuku direktno iz tabele artikala. Samo jedna šifra može
imati jedan naziv za artikl, tj. nema dupliranja u artiklovima. Automatizovao sam to,
tako da kad se puni, recimo, prijemnica samo se otkuca šifra artikla i izbacuje se
naziv iz tabele artiklovi. A ako se ne zna šifra, napravio sam brzu pretragu pa se za
određeni uslov isfiltriraju artiklovi(LIKE) i onaj koji nam treba selektujemo i automatizmom
dodajemo na prijemnicu. Znači, ne unosi se na prijemnici ručno?!
Komentar?

Voleo bih da čujem,broker, kako bi ti organizovao tabele. Znači, napravio sam
posebnu tabelu za artiklove, posebnu za ulaz i posebnu za izlaz. Da bi prikazao stanje
u magacinu, za sve artiklove, napravio sam pogled koji u dbgridu to i predstavalja.
Dakle, iz pogleda se dobiju polja:

šifraartikla|nazivartikla|ulaz|izlaz|stanje

Ovaj pogled je nastao iz pogleda koji objedinjuje tabelu ulaza i tabelu izlaza (UNION),
to nam je onaj prvi pogled što je Zidar predložio da se odradi.
Još da napomenem, da je u pitanju magacin materijala.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Možda malo složeniji upit?! Help...07.07.2006. u 14:00 - pre 216 meseci
U tabelama Ulaz i Izlaz ne treba da imas NazivArtikla. Potrebna i dovoljna je Sifra. Ako zelis da pokazes i NazivArtikla, trebace ti JOIN negde u pogledima, nejbolje u komponentama UNION pogleda
Umesto

SELECT Sifra, Naziv, Kolicina FROM Ulaz
UNION
SELECT Sifra, Naziv, Kolicina FROM Ulaz

trebace ti nesto ovako:

SELECT U.Sifra, A.Naziv, U.Kolicina
FROM Ulaz AS U
JOIN Artikli AS A ON A.Sifra=U.Sifra
UNION
SELECT I.Sifra, A.Naziv, I.Kolicina
FROM Ulaz AS I
JOIN Artikli AS A ON A.Sifra=I.Sifra

Zasto? Posto nemas NazivArtikla u tabelama Ulaz/Izlaz, moras da ga doneses iz tabele Artikli. Kao sto Broker rece, NazivArtikla NE TREBA (bolje reci NE SME) da bude u tabelama Ulaz, Izlaz. Jeste da se SELECT iskazi komplikuju, ali se oni pisu samo jednom i programer mora da nauci da ih pise. Lose je narusavati pravila normalizacije samo zato sto ce SELECT iskazi izgledati mozda komplikovano. Niko ti nije ovo o NazivArtikla rekao na pocetjku, jer je cilj bio da shvatis svrhu i ulogu UNION pogleda i da ti treba dva pogleda. Posto je to sada OK, mozemo da ti skrenemo paznju na drugi problem, koji je u sustini daleko ozbiljniji nego stos sa upotrebom UNION.

 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Možda malo složeniji upit?! Help...07.07.2006. u 14:11 - pre 216 meseci
U samom view-u koji vuce podatke izulaz izlaz joinuj podatke iz tabele artikli po kljucu sifra artikla:

SELECT sifraartikla AS SifraArtikla, artikli.naziv as NazivArtikla, sum(kolicinaulaz) AS Ulaz,
sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
LEFT JOIN artikli ON artikli.sifra = ulazizlaz.sifraartikla
GROUP BY sifraartikla;


inace, delphijeve tabele imaju jednu dobru stvar, pored polja koja sadrzi fizicka tabela, mozes da definises dodatna polja koja mogu biti lookup ili calculated tipa. Lookup polje po zadatom kljucu izvlaci vrednosti polja iz tabele koja je u relaciji sa osnovnom tabelom, a calculated polje prosto aktivira neku funkciju koja ce da izracuna vrednost polja.

U tvom slucaju, mozes iskoristi lookup polje tako da na osnovu sifre artikla iz view-a u kme su agregacije izracunate iz tabele ulazizlaz, iz tabele artikli povuces naziv.


Inace i samu tabelu uzlaz izlaz mozes da organizujes ovako:

sifra artikla
tip_promene
kolicina

gde je tip promene recimo 'U' ili 'I' kojom oznacavas da li se radi o ulazu ili izlazu, a kolicina sadrzi kolicinu u svakom slucaju. Ovo nije obavezno posto ume malo da zakomplikuje zivot, ali ako se gleda skolski... tako treba :)

 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...07.07.2006. u 15:42 - pre 216 meseci
Pozdrav ljudi,

prvo, još jednom da se zahvalim na vašoj velikodušnoj pomoći. Naime, pročitavši ova dva zadnja
vaša posta, izvršio sam izmene u bazi i poslušao vas.

Dakle, napravio sam tabelu ARTIKLI,ULAZ,IZLAZ. U ULAZ, IZLAZ se
pune samo brdokumenta,sifra dokumenta,šifre artikala,količina,datum.

Dalje, napravio sam pogled koristeći operator UNION, gde sam povezao ULAZ i IZLAZ i
odradio JOIN tabelu sa ARTIKLOVIMA. Znači, taj pogled mi prikazuje šta se nalazi u
tabelama ULAZ, IZLAZ sa nazivom za artikle i jedinicom mere iz ARTIKLI.

Sledeći pogled koji sam odradio je spajanje pogleda ulazizlaz sa tabelom ARTIKLI
, tako da dobijam stanje za sve artiklove plus naziv i jedinica mere:
Code:

SELECT SIFRAARTIKLA AS SifraArtikla, ARTIKLI.NazivArtikla,ARTIKLI.JedinicaMere
sum(kolicinaulaz) AS Ulaz,sum(kolicinaizlaz) AS Izlaz,
sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz
LEFT JOIN
ARTIKLI ON ARTIKLI.SIFRAARTIKLA=ulazizlazquery.SIFRAARTIKLA
GROUP BY SIFRAARTIKLA, ARTIKLI.NazivArtikla,ARTIKLI.JedinicaMere


Jel sad malo ispravnije odrađeno?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Možda malo složeniji upit?! Help...07.07.2006. u 16:04 - pre 216 meseci
Grupisi samo po sifri artikla. Naziv artikla i jedinica mere se vuku iz druge tabele na osnovu sifre artikla, a u ovom upitu nemaju nikakvu funkciju osim kao opis, pa nema potrebe da grupises po njima (za istu sifru artikla ces uvek imati siti naziv i jedinicu mere).

 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: Možda malo složeniji upit?! Help...08.07.2006. u 00:40 - pre 216 meseci
OK, tako sam i odradio...
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

amladjo
Mladen Arbutina
Novi Sad

Član broj: 30160
Poruke: 53
*.ptt.yu.

Sajt: www.dynasoft.rs


Profil

icon Re: Možda malo složeniji upit?! Help...09.07.2006. u 21:38 - pre 216 meseci
Citat:
broker: Grupisi samo po sifri artikla. Naziv artikla i jedinica mere se vuku iz druge tabele na osnovu sifre artikla, a u ovom upitu nemaju nikakvu funkciju osim kao opis, pa nema potrebe da grupises po njima (za istu sifru artikla ces uvek imati siti naziv i jedinicu mere).

Koju bazu koristite? Probao sam Access a i u MS SQL bazi je slično ponašanje.

Code:
SELECT SIFRAARTIKLA, ARTIKLI.NazivArtikla, ARTIKLI.JedinicaMere, sum(kolicinaulaz) AS Ulaz, sum(kolicinaizlaz) AS Izlaz, sum(kolicinaulaz)-sum(kolicinaizlaz) AS Stanje
FROM ulazizlaz LEFT JOIN ARTIKLI ON ARTIKLI.SIFRA=ulazizlaz.SIFRAARTIKLA
GROUP BY SIFRAARTIKLA;


Access kaže: Your tried to execute a query that does not include the specified expression 'NazivArtikla' as part of an aggregate function.
MS SQL kaže: Column 'Artikli.NazivArtikla' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause...

Pre sam radio sa Fox-om i nisam imao tih problema, sada, u MS SQL, jedini način koji je uspeo je dodatna Max() funkcija. Da li ja to nešto propuštam?
 
Odgovor na temu

[es] :: Baze podataka :: Možda malo složeniji upit?! Help...

Strane: 1 2

[ Pregleda: 3599 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.