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

SQL DISTINCT naredba master/details

[es] :: Pascal / Delphi / Kylix :: SQL DISTINCT naredba master/details

[ Pregleda: 3693 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

medixsa

Član broj: 155471
Poruke: 184
77.238.204.*



+2 Profil

icon SQL DISTINCT naredba master/details06.04.2008. u 22:44 - pre 180 meseci
Pozdrav !!!

Delphi 7


Radi se o master/details tabela sa SQL naredbama -
Spajanje details tabele sa master tabele.


Pitanje ?

Kako jemoguce uraditi DISTINCT polja npr. "BrojRac" u dole navedenom kodu.U dole kodu mi se pojavljuje vise puta jedan te isti broj racuna i iznos i sve ostala.Znam zbog cega je sve ovo,jer detail tabele je spojena preko kljuceva itd.

Negativni rezulatat dobijem:

Broj racuna, Operator,Iznos,SumPDV
*****************************
222 Medin 100 1,23..
111 Medin 200 2,23
234 Medin 300 2,34
222 Medin 100 1,23..
222 Medin 100 1,23..
222 Medin 100 1,23..
222 Medin 100 1,23..
222 Medin 100 1,23..

************************************

Zelim da dobijem rezultat :

Broj racuna, Operator,Iznos,SumPDV
*****************************
222 Medin 100 1,23..
234 Medin 300 2,34
111 Medin 200 2,23
****************************

Kod uzima sve podatke iz mster/details po operateru za period


// Postavlje trenutnog datumna u DatumOd - DatumDo
DatumOd.Date := Now;
DatumDo.Date := now;

QUpit.SQL.Clear;
QUpit.SQL.Add('select * from RacunP r join StavkeRacuna s on r.BrojRac = S.ID where (Datum between "'+DateToStr(DatumOd.Date)+'" and "'+DateToStr(DatumDo.Date)+'" and Operator = "'+frmGlavna.StatusBar1.Panels[3].Text+'")');
QUpit.Open;
LBroj.Caption := inttostr(QUpit.RecordCount);

Nadam se da sam pojasnio problem ?



Hvala svima na ponudjenim odgovorima !!!
 
Odgovor na temu

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

Član broj: 72468
Poruke: 1155
212.200.221.*



Profil

icon Re: SQL DISTINCT naredba master/details07.04.2008. u 07:49 - pre 180 meseci
Da li si probao sa klauzulom GROUP BY!?!
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 249
*.subotica.net.



+1 Profil

icon Re: SQL DISTINCT naredba master/details07.04.2008. u 09:53 - pre 180 meseci
Da li si probao sa 'select DISTINCT BrRac, Operator, Iznos, SumPDV....' ?
 
Odgovor na temu

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

Član broj: 72468
Poruke: 1155
212.200.221.*



Profil

icon Re: SQL DISTINCT naredba master/details07.04.2008. u 11:25 - pre 180 meseci
Ovako ti je najlakše:
Code:

SELECT  DISTINCT t1.[Broj racuna], t2.operator, t2.iznos, t2.sumpdv
FROM
(SELECT [Broj racuna]
 FROM
  Table1) AS t1
LEFT JOIN
(SELECT [Broj racuna], operator, iznos, sumpdv
 FROM
  Table1) AS t2
ON t1.[Broj racuna] = t2.[Broj racuna]



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

_deran_

Član broj: 69493
Poruke: 249
*.subotica.net.



+1 Profil

icon Re: SQL DISTINCT naredba master/details07.04.2008. u 11:38 - pre 180 meseci
Ovako je najkrace :)

Code:

SELECT distinct Table1.[broj racuna], Table1.operator, Table1.iznos, Table1.sumPDV
FROM Table1;

Prikačeni fajlovi
 
Odgovor na temu

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

Član broj: 72468
Poruke: 1155
212.200.221.*



Profil

icon Re: SQL DISTINCT naredba master/details07.04.2008. u 13:08 - pre 180 meseci
Citat:
_deran_: Ovako je najkrace :)

I najlakše... ;)

BTW, predložio sam GROUP BY jer nisam dovoljno pažljivo pročitao zahtev, izvinjavam se zbog toga.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

medixsa

Član broj: 155471
Poruke: 184
77.238.203.*



+2 Profil

icon Re: SQL DISTINCT naredba master/details08.04.2008. u 21:16 - pre 180 meseci
Hvala Vam puno na prakticnom primjeru !!!


Nesto sam uradio sa kodom npr:
i radi prilicno dobro

// Postavlje trenutnog datumna u DatumOd - DatumDo
DatumOd.Date := Now;
DatumDo.Date := now;

QUpit.SQL.Clear;
QUpit.SQL.Add('select DISTINCT BrojRac,Operator,TB,TBNaziv,Kolicina,preracPDV,Cijena,SumPDV,BezPDV,IznosSUM from RacunP r join StavkeRacuna s on r.BrojRac = S.ID where (Datum between "'+DateToStr(DatumOd.Date)+'" and "'+DateToStr(DatumDo.Date)+'" and Operator = "'+frmGlavna.StatusBar1.Panels[3].Text+'")');
QUpit.Open;

// Drugi upit samo iznos oepratora,sumPDV,bezPDV
QUpit1.SQL.Clear;
QUpit1.SQL.add('select Operator,Sum(IznosSUM) as IznosSUM,SUM(SumPDVr) as sumPDVr,SUM(sumbezPDVr) as sumbezPDVr from RacunP.dbf r join StavkeRacuna s on r.BrojRac = S.ID where (Datum between "'+DateToStr(DatumOd.Date)+'" and "'+DateToStr(DatumDo.Date)+'" and Operator = "'+frmGlavna.StatusBar1.Panels[3].Text+'") GROUP BY Operator');
QUpit1.Open;
LBroj.Caption := inttostr(QUpit.RecordCount);
IzvjOperator.Preview;

 
Odgovor na temu

viking13
Aleksandar Milanovic
SBB
Novi Beograd

Član broj: 131741
Poruke: 190
*.sbb.rs.



Profil

icon Re: SQL DISTINCT naredba master/details09.04.2008. u 10:59 - pre 180 meseci
Citat:
medixsa
// Postavlje trenutnog datumna u DatumOd - DatumDo
DatumOd.Date := Now;
DatumDo.Date := now;


Ovo zna da bude veoma problematično ako datum na klijentskoj mašini nije dobro podešen.

Najbolje datum pokupiti direktno iz SQL-a.
viking ®
 
Odgovor na temu

medixsa

Član broj: 155471
Poruke: 184
77.238.203.*



+2 Profil

icon Re: SQL DISTINCT naredba master/details09.04.2008. u 14:54 - pre 180 meseci
Ok hvala ti na savjetu,vec sam dobio odgovor vezano za dodjeljivanje datuma SQL upitu
 
Odgovor na temu

viking13
Aleksandar Milanovic
SBB
Novi Beograd

Član broj: 131741
Poruke: 190
89.216.96.*



Profil

icon Re: SQL DISTINCT naredba master/details09.04.2008. u 20:39 - pre 180 meseci
Citat:
medixsa: Ok hvala ti na savjetu,vec sam dobio odgovor vezano za dodjeljivanje datuma SQL upitu


Dobio si savet kako da proslediš datum kao parametar. I to je ok.

Ono o čemu je pričam je da ako ti treba trenutno vreme ili datum to pokupiš od servera, a ne sa klijentske mašine. Za firebird se za to koriste CURRENT_TIMESTAMP, CURRENT_TIME i CURRENT_DATE. Pogledaj dokumentaciju za svoj server kako se to radi tamo.

viking ®
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: SQL DISTINCT naredba master/details

[ Pregleda: 3693 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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