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

problem oko agregatnog upita

[es] :: Access :: problem oko agregatnog upita

[ Pregleda: 2972 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+133 Profil

icon problem oko agregatnog upita05.01.2011. u 02:10 - pre 161 meseci
tebele su

ROBA - pozicija nabavke i rad


imam upit:


Code:
 SELECT roba.[sifra robe], Sum([pozicija nabavke].kolicina) AS nabavka, Sum(rad.repro) AS prodaja, [nabavka]+[prodaja] AS stanje
FROM (roba INNER JOIN [pozicija nabavke] ON roba.[sifra robe]=[pozicija nabavke].[sifra robe]) INNER JOIN rad ON roba.[sifra robe]=rad.[sifra robe]
GROUP BY roba.[sifra robe];


e sad, ukoliko nemam recorde u tabelama rad i pozicija nabavke query mi vraca praznu tabelu.
kako da uradim query da mi tada vraca nule?

sifra robe nabavka prodaja stanje
1 0 0 0
2...

a da pritom izlista sve vrednosti sifra robe iz tabele roba ( ne samo one koje se pojavljuju u tabelama rad i pozicija nabavke)
- inace kada imam samo nabavku a ne prodaju takodje mi vraca praznu tabelu.

kako da resim ovo?
unapred zahvalan!!!
 
Odgovor na temu

Zoran.Eremija
Zoran Eremija
SYSTEM ANALYST
Freelancer
Beograd

Član broj: 251342
Poruke: 855
...148.91.adsl.dyn.beotel.net.

Sajt: zoraneremija.wix.com/erem..


+47 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 07:18 - pre 161 meseci
SELECT roba.[sifra robe], Sum(Nz([pozicija nabavke].kolicina)) AS Nabavka, Sum(Nz([repro])) AS prodaja, Nz([nabavka]+[prodaja]) AS stanje
FROM (roba LEFT JOIN [pozicija nabavke] ON roba.[sifra robe] = [pozicija nabavke].[sifra robe]) LEFT JOIN rad ON roba.[sifra robe] = rad.[sifra robe]
GROUP BY roba.[sifra robe];

LEFT JOIN cini sve, kao i Nz funkcija

Takodje ako vec koristite relacioni model (Access) koristite njegove blagodeti "veze", kao i primarne kljuceve...
Prikačeni fajlovi
 
Odgovor na temu

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+133 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 12:09 - pre 161 meseci
hvala puno!!!
 
Odgovor na temu

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+133 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 13:58 - pre 161 meseci
a kako da izvedem ovo?

Code:
SELECT roba.[sifra robe], Max([roba cenovnik].datum) AS datum, First([roba cenovnik].cenabezpdv) AS FirstOfcenabezpdv
FROM roba LEFT JOIN [roba cenovnik] ON roba.[sifra robe]=[roba cenovnik].[sifra robe]
WHERE [roba cenovnik].[sifra klijenta]=2
GROUP BY roba.[sifra robe];


znaci ne treba mi First([roba cenovnik].cenabezpdv) nego mi treba bas onaj koji je u tabeli roba cenovnik u polju gde je za datu sifru robe maksimalni datum.
pokusao sam bez ovog first i prijavljuje gresku.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 14:15 - pre 161 meseci
dodaj ovako nekako:

Code:
and datum = (select max(datum) from tablica)

F
 
Odgovor na temu

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+133 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 14:26 - pre 161 meseci
ali ne treba mi max datum nego max datum za sifru robe.
znaci imamo

sifra robe datum
1 1/1
1 1/2
1 1/3
2 1/2
2 1/4
2 1/6
3 1/6
3 1/8
3 1/9

max datum ce da vrati 1/9
a meni za sifru robe 1 treba max datum 1/3

 
Odgovor na temu

SLOJ.1973

Član broj: 130198
Poruke: 871
*.adsl.eunet.rs.



+41 Profil

icon Re: problem oko agregatnog upita05.01.2011. u 19:13 - pre 161 meseci
Potrebno je da napraviš dva upita,prvi sa svim poljima Group by:
Code:
SELECT [roba cenovnik].[sifra robe], [roba cenovnik].datum, [roba cenovnik].cenabezpdv, [roba cenovnik].[sifra klijenta]
FROM [roba cenovnik]
GROUP BY [roba cenovnik].[sifra robe], [roba cenovnik].datum, [roba cenovnik].cenabezpdv, [roba cenovnik].[sifra klijenta]
ORDER BY [roba cenovnik].[sifra robe], [roba cenovnik].datum;
, a drugi zasnovan na prvom sa sledećim kriterijumima:
Code:
SELECT Query1.[sifra robe], Last(Query1.cenabezpdv) AS LastOfcenabezpdv, Query1.[sifra klijenta]
FROM Query1
GROUP BY Query1.[sifra robe], Query1.[sifra klijenta]
HAVING (((Query1.[sifra klijenta])=2));
.Da napomenem da sam ovaj odgovor dobio od Getsbi-ja u ovoj temi http://www.elitesecurity.org/t245377-0#1475421
Jednog dana...
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Access :: problem oko agregatnog upita

[ Pregleda: 2972 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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