Arkadaşlar benim hazırladığım bir projede
loglar.db
ürün adı adet fiyatı
masa 2 3,00
kalem 1 1,00
defter 5 4,00
masa 3 3,00
kalem 6 1.00
şeklinde kayıtlı,
ben burda adet sayısı en fazla olan ürünleri guruplandırarak ( masa 5, kalem 7 vs) en fazla adet sayısı bulunan örneğin 3 ürünü listelemek istiyorum.Bu konuda yardımınız olursa sevinirim.
Saygılarımla
SQL sorgulama İle en çok satılan 3 ürünün listelenmesi?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 9
- Kayıt: 23 Eyl 2010 06:42
- Konum: Muğla
Re: SQL sorgulama İle en çok satılan 3 ürünün listelenmesi?
Kod: Tümünü seç
procedure TForm3.ListeleClick(Sender: TObject);
begin
try
ListView1.Items.Clear;
with Arsiv do
begin
Close;
SQL.Text := 'Select * From Arsiv where URUN like ' + QuotedStr('%' + Edit1.Text + '%') + ' order by URUN ASC';
Open;
while Not Eof do
begin
with ListView1.Items.Add do
begin
Caption := IntToStr(Form3.ListView1.Items.Count);
SubItems.Add(FieldByName('SIRANO').AsString);
SubItems.Add(FieldByName('URUN').AsString);
Next;
Bilgi.Caption := 'Listeleme İşlemi Başarıyla Tamamlandı!';
end;
end;
end;
except
Application.MessageBox('Listeleme İşlemleri Sırasında Hata Oluştu!', 'Hata',
MB_Ok or MB_ICONQUESTION);
end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: SQL sorgulama İle en çok satılan 3 ürünün listelenmesi?
SQL sorgulardahasansavci yazdı:Arkadaşlar benim hazırladığım bir projede
loglar.db
ürün adı adet fiyatı
masa 2 3,00
kalem 1 1,00
defter 5 4,00
masa 3 3,00
kalem 6 1.00
şeklinde kayıtlı,
ben burda adet sayısı en fazla olan ürünleri guruplandırarak ( masa 5, kalem 7 vs) en fazla adet sayısı bulunan örneğin 3 ürünü listelemek istiyorum.Bu konuda yardımınız olursa sevinirim.
Saygılarımla
1. Ürünleri gruplandırmak için GROUP BY veya SELECT satırında DISTINCT kullanabilirsin.
Kod: Tümünü seç
SELECT URUNADI FROM LOGLAR GROUP BY URUNADI ORDER BY URUNADI
2. En fazla olan değeri bulmak için MAX ifadesi kullanılır.
Kod: Tümünü seç
SELECT MAX(ADET) as ADET FROM LOGLAR WHERE URUNADI = 'masa'
3. şimdi bu iki yapıyı birleştirelim.
Kod: Tümünü seç
SELECT URUNADI, MAX(ADET) as ADET FROM LOGLAR GROUP BY URUNADI ORDER BY URUNADI