Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Aynı kayıt
#1
Selamlar, Sqlite databasede aynı Kayıttan birden fazla olanları ListView'e almak istiyorum ancak yapamadım bu sorunu nasıl? çözerim.


Örnek:
Elma 3 tane varsa 2 listelenecek
Armut 5 tane varsa 4 listelenecek
Ayva 1 varsa listelenmeyecek



  try
    FDQ.Active := False;
    FDQ.Close;
    FDQ.SQL.Clear;
    FDQ.SQL.Add('Select * From URUNLER Order By UrunName Asc');  
    FDQ.Open;
    while Not FDQ.Eof do
    begin
      LItem := ListView1.Items.Add;
      LItem.Data['UrunName'] := FDQ.FieldByName('UrunName').AsString;
      FDQ.Next;
    end;
Cevapla
#2
ListView kullanmadım ama ListBox kullanırsanız ListBox'un Sorted özelliğini TRUE yapın. Sonra ListBox1.items.itemindex(stringDegisken) = -1 then ListBox1.items.add(stringDegisken);

şeklinde çalışır.
Cevapla
#3
sql de gorup by ve having cümleciklerini araştırın..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#4
SELECT COUNT(urunname) as adet, urunname
FROM urunler
GROUP BY urunname
HAVING COUNT(adet) >1
order by urunname;
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#5
(17-12-2022, Saat: 21:37)mcuyan Adlı Kullanıcıdan Alıntı:
SELECT COUNT(urunname) as adet, urunname
FROM urunler
GROUP BY urunname
HAVING COUNT(adet) >1
order by urunname;




   FDQ.SQL.Add('Select ID, URUNKODU, Count(*) From URUNLER Group By URUNKODU Having Count(URUNKODU)>1 Order By URUNKODU Asc');


Hocam sizin yağlaştığınız kodalarıda denedim kendimde bir şeyler yaptım ama olmadı.
Aynı URUNKODU olan ürünleri 1 taneden fazla ise ASC ile sıralı olarak listelemek istiyorum.
Cevapla
#6
Select de Count(*) Having de ise count(URUNKODU) kullanmışınız. Select te ne kullanırsanız Having de aynısını kullanmanız gerekiyor

ikisinde de Count(*) veya count(URUNKODU)  kullanmalısınız. Tercih sizin

1- FDQ.SQL.Add('Select ID, URUNKODU, Count(*) From URUNLER Group By URUNKODU Having Count(*) >1 Order By URUNKODU Asc');
2- FDQ.SQL.Add('Select ID, URUNKODU, Count(URUNKODU) From URUNLER Group By URUNKODU Having Count(URUNKODU) >1 Order By URUNKODU Asc');
Cevapla
#7
bu şekilde 1 den cok olanları sildiriyorum işinize yarayabilir.

adoQuery1.Sql.add('DELETE FROM tablo1 WHERE NOT kimlik IN (SELECT MIN(kimlik)FROM tablo1 GROUP BY alan1)') ;
Cevapla
#8
@Mete hocam burda olay delphi de değil SQL de. SQL ile çözmeniz gerek işinizi. Haa illa ki uzun yolda delphi ile ömzeyim diyorsanız bi array tanımlayın her ürüne bi count verin.. Smile) ama işi çooookkk uzatırsınız Smile
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#9
Photo 
(17-12-2022, Saat: 14:01)declare Adlı Kullanıcıdan Alıntı: @i  integer
declare
@Temp table (Urun_Adi varchar(20), Adet int)
set @i=1
while @i<=3
begin
insert into @Temp (Urun_Adi,Adet)
select 'Elma',1
set @i=@i+1
end
set @i=1
while @i<=5
begin
insert into @Temp (Urun_Adi,Adet)
select 'Armut',1
set @i=@i+1
end
insert into @Temp (Urun_Adi,Adet)
select 'Ayva',1
select Urun_Adi,COUNT(*) Adet from @Temp group by Urun_Adi
select Urun_Adi ,count(*)-1 [1_eksigi]   from @Temp t group by t.Urun_Adi having (count(*)-1)>0 


Ek Dosyalar Resimler
   
Cevapla
#10
(19-12-2022, Saat: 16:06)sefere55 Adlı Kullanıcıdan Alıntı: bu şekilde 1 den cok olanları sildiriyorum işinize yarayabilir.

adoQuery1.Sql.add('DELETE FROM tablo1 WHERE NOT kimlik IN (SELECT MIN(kimlik)FROM tablo1  GROUP BY alan1)') ;

Teşekkür ederim fakat bana uymadı neredeyse tüm kayıtları sildi.








(19-12-2022, Saat: 15:53)ugorkem Adlı Kullanıcıdan Alıntı: Select de Count(*) Having de ise count(URUNKODU) kullanmışınız. Select te ne kullanırsanız Having de aynısını kullanmanız gerekiyor

ikisinde de Count(*) veya count(URUNKODU)  kullanmalısınız. Tercih sizin

1- FDQ.SQL.Add('Select ID, URUNKODU, Count(*) From URUNLER Group By URUNKODU Having Count(*) >1 Order By URUNKODU Asc');
2- FDQ.SQL.Add('Select ID, URUNKODU, Count(URUNKODU) From URUNLER Group By URUNKODU Having Count(URUNKODU) >1 Order By URUNKODU Asc');



Teşekkür ederim güzel çalışıyor. Fakat istediğim gibi yapamadım bir türlü.

Örnek:
Elma 3 tane varsa ise 2 listelenecek
Armut 5 tane varsa ise 4 listelenecek
Ayva 1 varsa listelenmeyecek

Sizin verdiğiniz örnek kodlarda sadece aynı üründen 1 tanesi listeleniyor...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap veritabanı kayıt serdar 2 518 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 5.172 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 3.092 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  MSSQL Kayıt yöntemi nevzatc 2 889 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar
  MdiChield formu aynı projede show ve showmodal ile çağırma nevzatc 6 1.312 07-12-2024, Saat: 19:08
Son Yorum: nevzatc



Konuyu Okuyanlar: 1 Ziyaretçi