Novo

Forum kao aplikacija na telefonu

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

  • 6 odgovora
  • 4.372 pregleda

Najnovija ↓

problem oko agregatnog upita 05.01.2011. u 03:10 · pre 192 meseca #1
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!!!
Re: problem oko agregatnog upita 05.01.2011. u 08:18 · pre 192 meseca #2
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...
Potpis
http://zoraneremija.wix.com/eremijacv
Re: problem oko agregatnog upita 05.01.2011. u 14:58 · pre 192 meseca #4
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.
Re: problem oko agregatnog upita 05.01.2011. u 15:15 · pre 192 meseca #5
dodaj ovako nekako:

Code:
and datum = (select max(datum) from tablica)
Potpis
F
Re: problem oko agregatnog upita 05.01.2011. u 15:26 · pre 192 meseca #6
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

Re: problem oko agregatnog upita 05.01.2011. u 20:13 · pre 192 meseca #7
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
Potpis
Jednog dana...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme