bana biraz karışık gelen sql sorgusu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
bana biraz karışık gelen sql sorgusu
öncelikle kandiliniz mübarek olsun...
soruma gelince veritabanım firebird şimdi satis diye bir tablom var.
sql sorgusu şu şekilde olacak.verilen iki tarih aralığı ile satis listesinde bulunan kayıtları marka sı ve stoktipi alanları aynı olanları birkere listeleyecek ve toplamlarını yazacak.yani dunlop marka 10 tane ise dunlop marka ürünü bir kere listeleyecek ve yanına 10 yazacak.ben select distinc ile her kayıtı birkere gösterip toplamlarını gösterdim fakat tarih filtreleme işini ekleyemedim bu konuda bana yardımcı olursanız çok sevinirim.benim için çok önemli bir konu.
herkese kolay gelsin...
Allah Yardımcınız Olsun...
soruma gelince veritabanım firebird şimdi satis diye bir tablom var.
sql sorgusu şu şekilde olacak.verilen iki tarih aralığı ile satis listesinde bulunan kayıtları marka sı ve stoktipi alanları aynı olanları birkere listeleyecek ve toplamlarını yazacak.yani dunlop marka 10 tane ise dunlop marka ürünü bir kere listeleyecek ve yanına 10 yazacak.ben select distinc ile her kayıtı birkere gösterip toplamlarını gösterdim fakat tarih filtreleme işini ekleyemedim bu konuda bana yardımcı olursanız çok sevinirim.benim için çok önemli bir konu.
herkese kolay gelsin...
Allah Yardımcınız Olsun...
selam
Kod: Tümünü seç
ibdataset1.Close;
ibdataset1.SelectSQL.Clear;
ibdataset1.SelectSQL.Add('select marka,stokkodu,stoktipi,sum(toplanacakalan) from SATIS where stokkodu is not null');
ibdataset1.SelectSQL.Add('and tarih >='+#39+(dateedit1.text)+#39);
ibdataset1.SelectSQL.Add('and tarih <='+#39+(dateedit2.text)+#39);
ibdataset1.SelectSQL.Add('group by marka,stokkodu,stoktipi');
ibdataset1.Open;
hocam cevap için teşekkürler ben ibquery kullandığım için değiştirerek kendime uyguladım sorunsuz çalıştı.fakat işin raporlama kısmında rave ile rapor alıyorum burada hata veriyor adet kısmında hata veriyor.
hata:field dataview4.adet datetype expected:dtInteger datatype found:dtInt64 hata bu.bu hatayı sanırım biz adet alanlarının birkaç tanesinin toplamını aldığımız için oldu heralde çözebilirmiyiz.
Sagılar...
Allah Yardımcınız Olsun...
hata:field dataview4.adet datetype expected:dtInteger datatype found:dtInt64 hata bu.bu hatayı sanırım biz adet alanlarının birkaç tanesinin toplamını aldığımız için oldu heralde çözebilirmiyiz.
Sagılar...
Allah Yardımcınız Olsun...
hocam dediğin gibi sql de sorun yok zaten.dedim ya sql sorunsuz çalışıyor diye.problem rave de ama bende yeni başladım raveye.qreport u da fazla kullanmadım.tam hatırlamıyorum nasıl oluyordu ama ibquery ile rapor oluştururken alanları aktif edemiyodum sanırım.yani sadece table içeriğindeki fields leri qreporta atabiliyodum.aynı ravede olduğu gibi.onun için qreportta da olsa yine çalışmıcak.yani ben yapamıcam.belki rave konusunda bilginiz vardır diye başka başlık açmaya gerek duymadım.forum kirliliği açısından.belki bilen arkadaş gelir.biraz sabırlı olup beklemek lazım...yardımlarınız için teşekkür ederim serkan hocam.
Saygılar...
Allah Yardımcınız Olsun...
Saygılar...
Allah Yardımcınız Olsun...
serkan hocam.sql sorgusu ile ilgili bi sıkıntı var.ben raporlama kısmını excele aktararak çözdüm.sql sorununa gerince sanırım benim sorunu yanlış anlatmamdan kaynaklandı.şimdi hocam şuanki sorun şu.şimdi tarih aralığı yapmıştık ya tarih aralığını sorguluyodu tarih aralığını sorgularken sadece o tarih arasında ki satılan adeti toplucak bizim sorguda o tarih arasındakini listeleyip çıkarıyor fakat satılan bütün adetleri topluyor.yani istediğim tarih aralığında çıkardığı kayıtların adetini toplaması...
Saygılar...
Allah Yardımcınız Olsun...
Saygılar...
Allah Yardımcınız Olsun...
..::ÖzSoft Computer Land & NetCity Internet Cafe::..
SQL sorgusunda problem yok bu sql ile marka,stokkodu,stoktipi alanlarını seçip verdiğin iki tarih arasındaki satış rakamlarını topluyor.yani o tarih aralığının dışındaki satışları dikkate almıyor.senin kendine uyarladığın şekliyle forumda yazarsan iyi olur.birde verileri manuel olarak toplayıp iyice bir kontrol et bakalım.
Kod: Tümünü seç
ibquery1.Close;
ibquery1.SQL.Clear;
ibquery1.SQL.Add('select tarih,urun,marka,sum(adet) ADET from SATIS where sira is not null');
ibquery1.SQL.Add('and tarih >='+#39+(suiedit1.text)+#39);
ibquery1.SQL.Add('and tarih <='+#39+(suiedit2.text)+#39);
ibquery1.SQL.Add('group by marka,tarih,urun');
ibquery1.Open;
Saygılar...
Allah Yardımcınız Olsun...
..::ÖzSoft Computer Land & NetCity Internet Cafe::..
serkan hocam kod çalışıyormuş özür dilerim.ama bir sorun var bu iş çok karıştı söle anlatayım...
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 2
27.07.2006 Optik Cerceve DUNLOP 4
27.07.2006 Lens OEM 5
27.07.2006 Optik Cerceve DUNLOP 2
28.07.2006 Optik Cerceve DUNLOP 4
şimdi tarih aralığı sadece 27.07.2006 istiyorum bana çıkan sonuç bu
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 8
27.07.2006 Lens OEM 5
burada sorun yok zaten bu şekil istiyorum ama
27.07.2006 ile 28.07.2006 arası sorgu istiyorum bana şöyle çıkarıyor
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 8
27.07.2006 Lens DUNLOP 5
28.07.2006 Optik Cerceve DUNLOP 4
sonuc böyle çıkıyor ben bunu istemiyorum bu son kaydı da yukarıdakine ekleyecek aynı kayıt olduğu için yani aslında sorgu sonucu çıkan kayıtların tarihi önemli değil...
27.07.2006 ile 28.07.2006 arası aynı ürünlerden ne kadar satılmış bana onu göstersin ben onu istiyorum...
inşallah anlatabilmişimdir...
Saygılar...
Allah Yardımcınız Olsun...
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 2
27.07.2006 Optik Cerceve DUNLOP 4
27.07.2006 Lens OEM 5
27.07.2006 Optik Cerceve DUNLOP 2
28.07.2006 Optik Cerceve DUNLOP 4
şimdi tarih aralığı sadece 27.07.2006 istiyorum bana çıkan sonuç bu
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 8
27.07.2006 Lens OEM 5
burada sorun yok zaten bu şekil istiyorum ama
27.07.2006 ile 28.07.2006 arası sorgu istiyorum bana şöyle çıkarıyor
tarih urun marka satılan kalan
27.07.2006 Optik Cerceve DUNLOP 8
27.07.2006 Lens DUNLOP 5
28.07.2006 Optik Cerceve DUNLOP 4
sonuc böyle çıkıyor ben bunu istemiyorum bu son kaydı da yukarıdakine ekleyecek aynı kayıt olduğu için yani aslında sorgu sonucu çıkan kayıtların tarihi önemli değil...
27.07.2006 ile 28.07.2006 arası aynı ürünlerden ne kadar satılmış bana onu göstersin ben onu istiyorum...
inşallah anlatabilmişimdir...
Saygılar...
Allah Yardımcınız Olsun...
..::ÖzSoft Computer Land & NetCity Internet Cafe::..
bu konuda SQL haklı sana sadece istediğini veriyor
neden sorgu sonucunda tarih alanını istiyorsunki. eğer doğru anladıysam iki tarih aralığında gruplama yapacaksan sana tarih alanı lazım değil. mesala 01.07.2006 ile
27.07.2006 tarihleri arasındaki kayıtları birleştirip tek tarih yaptığında tarih kolununa ne yazacak. grup mantığında bunu yapmaz sadece aynı günkü ürünleri birleştirir. raporun bir köşesine listelen tarih aralığını girersen bir problem kalmaz muhtemelen.
Kolay gelsin

neden sorgu sonucunda tarih alanını istiyorsunki. eğer doğru anladıysam iki tarih aralığında gruplama yapacaksan sana tarih alanı lazım değil. mesala 01.07.2006 ile
27.07.2006 tarihleri arasındaki kayıtları birleştirip tek tarih yaptığında tarih kolununa ne yazacak. grup mantığında bunu yapmaz sadece aynı günkü ürünleri birleştirir. raporun bir köşesine listelen tarih aralığını girersen bir problem kalmaz muhtemelen.
Kolay gelsin