Novo

Forum kao aplikacija na telefonu

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

  • 5 odgovora
  • 5.131 pregleda

Najnovija ↓

SQL problemcic 29.03.2002. u 18:33 · pre 299 meseci #1
Napisao sam SQL naredbu koja mi iz baze u DBGrid-u pokaze npr. sve sta je radnik PERO uradio u periodu od 01/02/2002 do 01/03/2002 i to super radi evo koda

Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add ('select * from servis');
Query1.Sql.Add ('where radnik = "'+Edit1.text+'" and datum between "'+MaskPocetak.Text+'" and "'+MaskKraj.Text+'" ');
Query1.Open;

Sta treba jos da dopisem i na koji nacin da to povezem sa komponentom Label ili DBLabel da bi mi ona prikazala ukupanu vrijednost kolone IZNOS za tog radnika i taj period. Nadma se da sam bio razumljiv ;)
Potpis
... Djole, Djole nevaljali zeka...
Re: SQL problemcic 29.03.2002. u 23:53 · pre 299 meseci #2
Najbolje (najefikasnije) resenje je:

Code:
with query1 do
begin
close;
sql.clear;
sql.add(
'SELECT IME, PREZIME, POSAO, SUM(IZNOS) IZNOS FROM SERVIS
WHERE RADNIK = :Rad AND DATUM BETWEEN :dat1 AND :dat2
GROUP BY IME, PREZIME, POSAO;');
params[0].name:='Rad';
params[0].value:=edit1.text;
params[1].name:='Dat1';
params[1].value:=MaskPocetak.text;
params[2].name:='Dat2';
params[2].value:=MaskKraj.text;
Open;
label1.caption:=fieldbyname('IZNOS').AsString;
end;


(eventualno formatiraj taj izlaz u label1)
Potpis
Sve sto je besmislenije, utoliko je bolje.
Re: SQL problemcic 30.03.2002. u 11:57 · pre 299 meseci #3
ja cu opet da napravim malu zavrzlamu oko najefikasnijed resenja :)
overflow je prezentirao prilicno efikasnog i bezbolnog resenja,
ali ipak mislim da ima boljeg.
kao prvo, njegovo resenje treba ponovo inicijalizirati parsiranje query-ja
prolistati ponovo bazu, i tek onda presmetati sumu.
veci deo ovih koraka mogu se izbeci, posto vec imamo recordset koji nam sadrzi
sve rekorde iz baze koje nam trebaju. Ja bih jednostavno prosao kroh
taj postojeci recordset i sumirao kolonu.

alienov kod:
Code:

Query1.Close; 
Query1.Sql.Clear; 
Query1.Sql.Add ('select * from servis'); 
Query1.Sql.Add ('where radnik = "'+Edit1.text+'" and datum between "'+MaskPocetak.Text+'" and "'+MaskKraj.Text+'" '); 
Query1.Open; 
//funkcija za presmetanje sumu iznosa:
with query1 do
begin
DisableControls; // da se dzaba ne update-uje grid i ostale db aware kontrole
first;
sum:=0;
while not eof do
begin
suma:=suma+fieldbyname('iznos').asFloat; //moze i integer
next;
end;
Label1.caption:=floattostr(suma);
EnableControls; 
end;

Potpis
People who think they know everything tend to irritate those of us who do.
Re: SQL problemcic 30.03.2002. u 17:43 · pre 299 meseci #4
Definitivno si me naterao da uradim test sa 50.000 recorda sa tvojim i mojim kod-om ... licno-jedva cekam rezultate ... potrudicu se da ih postavim koliko vec sutra (posto danas nisam nesto sa vremenom).
Potpis
Sve sto je besmislenije, utoliko je bolje.
Re: SQL problemcic 30.03.2002. u 19:24 · pre 299 meseci #5
kad sam pre napisao post, samo sam brzaka procitao overflow-ov post.
i hteo bi da se izvinim, posto je overflow stvarno u pravu.
Njegovo resenje JE brze, a i bolje.
Potpis
People who think they know everything tend to irritate those of us who do.
Re: SQL problemcic 01.04.2002. u 00:14 · pre 299 meseci #6
u svakom slucaju hvala vam obadvojici!
Potpis
... Djole, Djole nevaljali zeka...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme