[ popmilan76 @ 25.02.2017. 16:38 ] @
Kako da u jednom upitu,uradim count za razlicite iznose...nesto tipa distinct,kod mi je ovakav


SELECT Count(TblHemijsko.BrojPrijemnice) AS CountOfBrojPrijemnice, Sum(TblHemijsko.Ukupno) AS SumOfUkupno, Sum(TblHemijsko.Kolicina) AS SumOfKolicina
FROM TblHemijsko
GROUP BY TblHemijsko.DatumNaplate, TblHemijsko.Status, TblHemijsko.Faktura
HAVING (((TblHemijsko.DatumNaplate)=Date()) AND ((TblHemijsko.Status)="Placeno") AND ((TblHemijsko.Faktura)="ne"));
[ Getsbi @ 25.02.2017. 16:51 ] @
Probaj taj upit koji već imaš da ti bude izvor, a onda upotrebi:

SELECT DISTINCTROW * FROM TvojIzvor.
[ popmilan76 @ 25.02.2017. 18:00 ] @
Isto je izbaci mi 2 a treba 1...i distinct i distinctrow
[ Getsbi @ 25.02.2017. 18:37 ] @
Možda da okačiš primer sa podacima i napišeš tačno šta očekuješ.
[ popmilan76 @ 25.02.2017. 18:42 ] @
Imam polje brojprijemnice,i u polje je dozvoljeno dupliakt....i hocu da znam koliko je prijemnica danas upotrebljeno
[ captPicard @ 25.02.2017. 18:56 ] @
Ovo "Placeno" i "ne" ti je inače jako loša struktura baze. To rješavaj ili sa Boolean tipom ako ga Access ima, ako ne je bolje da staviš Char(1) i onda ili T ili F vrijednosti.

I ovo Date() ti baš i nije zgodno, šta ako želi vidjeti za 2 dana unazad?

Bez da okačiš primjer sa podacima češ teško dobiti točan odgovor na pitanje.
[ djoka_l @ 25.02.2017. 19:48 ] @
Ne sećam se da sam ikada video lošiji upit.

Ovde HAVING klauzula stoji bez veze. Uslovi koji stoje u HAVING treba da se napišu u WHERE.

Mi nemamo pojma šta stoji u tvojim podacima.

Lepu uradi:

SELECT TblHemijsko.BrojPrijemnice, TblHemijsko.Ukupno, TblHemijsko.Kolicina
FROM TblHemijsko
WHERE TblHemijsko.DatumNaplate=Date()
AND TblHemijsko.Status="Placeno"
AND TblHemijsko.Faktura="ne";

pa da ti onda kažemo šta treba da da tvoj upit.
[ popmilan76 @ 26.02.2017. 16:53 ] @
Ok,evo mi primera,inace treba da ima date,post ne sme da gleda u jucerasnji datum,samo danasnji...
Inace,ovo je moglo i sa true/false,al hajde...a having clause mi je dodao sam Access,to je samo prekoipirano iz njegovog dizajna....
Googlao sam,i izgledas da ne podrazva count(distinct moje polje)
[ Getsbi @ 26.02.2017. 18:06 ] @
Djoka_I ti je lepo rekao. Upiti ne mogu da se pišu tako. Nemoj da se trudiš da napišeš složenu rečenicu ako prethodno ne naučiš da pišeš proste. Kad sam ti rekao u prvom svom postu da izvor podataka za upotrebu DISTINCTROW treba da ti bude već postojeći upit, onda to izgleda ovako.

Prvo izvučeš u jednom upitu Query1 sve zapise po tvoja tri kriterijuma.
Code:
SELECT TblHemijsko.*, TblHemijsko.DatumNaplate, TblHemijsko.Status, TblHemijsko.Faktura
FROM TblHemijsko
WHERE (((TblHemijsko.DatumNaplate)=Date()) AND ((TblHemijsko.Status)="Placeno") AND ((TblHemijsko.Faktura)="ne"));

Dobijeni rezultat Query1 ti je izvor podataka za sledeći upit.
Potom uradiš Distinct nad kolonom BrojPrijemnice i dobićeš Broj upotrebljenih prijemnica u upitu Query2.
Code:
SELECT DISTINCT Query1.BrojPrijemnice 
FROM Query1;


Drugi rezultat koji te zanima je suma polja Ukupno i suma polja Kolicina. Opet uzimaš Query1 za izvor podataka i dobijaš upit Query3, koji glasi.
Code:
SELECT Sum(Query1.Ukupno) AS SumOfUkupno, Sum(Query1.Kolicina) AS SumOfKolicina
FROM Query1;


Možda bi nešto moglo i da se spoji ali nemam vremena da sada eksperimentišem.
[ popmilan76 @ 27.02.2017. 18:14 ] @
Ok,to je to,zaboravih da ti zahvalim na vremenu....s tim sto sam ove sumove sam uradio,nisam znao ovo za jedinstvene counte....
[ popmilan76 @ 02.03.2017. 19:09 ] @
Imam ovde ispravku,ovaj upit sto mi je dat,prikazuje brojeve potvrda koje su distinct,ali meni treba ovo...

SELECT DISTINCT Count(QryPrviRac.BrojPrijemnice) AS CountOfBrojPrijemnice
FROM QryPrviRac;

sad cu probati mislim da je ovo to sto mi treba,jer mi treba count
[ djoka_l @ 02.03.2017. 19:25 ] @
Ovde ti je DISTINCT suvišno:

SELECT Count(QryPrviRac.BrojPrijemnice) AS CountOfBrojPrijemnice
FROM QryPrviRac;
[ popmilan76 @ 02.03.2017. 19:29 ] @
Ne izlazi dobro,nesto ne valja...u prvom kveriju imam,recimo 2,4,4 u broju prijemnioce i izalzi mi 3,a treba 2
[ djoka_l @ 02.03.2017. 19:42 ] @
onda treba

SELECT Count(DISTINCT QryPrviRac.BrojPrijemnice) AS CountOfBrojPrijemnice
FROM QryPrviRac;

Nemam pojma šta ti kveri vraća, ali onako kako si napisao distinct je bespotreban. Pošto

SELECT Count(QryPrviRac.BrojPrijemnice) AS CountOfBrojPrijemnice
FROM QryPrviRac;

vraća tačno jednu vrednost (3) onda i DISTINCT od jedne vrednosti vraća jednu vrednost.

A tebi, u stvari, treba broj RAZLIČITIH brojeva prijemnica, a to je ovaj kveri koji sam gore napisao.

Razmisli o tome da kupiš knjigu SQL za 21 dan, stvarno može da se nauči za to vreme, bar toliko da napraviš razliku u shvatanju DISTINCT COUNT() i COUNT( DISTINCT )
[ djoka_l @ 02.03.2017. 19:53 ] @
Iznervirala me je činjenica da si već 6 godina na ovom forumu, pre 5 godina si postavio prvo pitanje u vezi sa SQL, A I DALJE NISI PROČITAO NI JEDNU KNJIGU!!!

Zar je moguće da ne vidiš koliko stagniraš... 5 godina, a postavljaš pitanje na koje bi znao odgovor posle 3 dana kursa SQL-a

https://www.w3schools.com/sql/sql_func_count.asp
[ popmilan76 @ 02.03.2017. 19:54 ] @
Ma znam ja razliku izmedju tih upita sto sii naveo,ali ja iz upita query1 od getsbija imam u brojprijemnica 2,4,4 i sta god stavio u query2,vraca mi tri a ne dva....kad kazem sta god ,bilo to distinct count ili count distinct ,isto vraca....
[ djoka_l @ 02.03.2017. 20:12 ] @
Uzgred, pošto je u pitanju access count(distinct...) može da vrati samo grešku
treba

select count(*)
from (select distinct QryPrviRac.BrojPrijemnice from QryPrviRac)

Naravno, i to može da se nađe na mnogo mesta na netu

http://stackoverflow.com/quest...items-in-field-in-access-query
[ popmilan76 @ 02.03.2017. 20:16 ] @
Reseno,hvala svima....