Gruplamalı SQL ifadesi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Gruplamalı SQL ifadesi

Mesaj gönderen varyemez »

Merhaba arkadaşlar , ufak bir sorunum var .

STOKHAR tablomuzda
barkod
tarih
carikod
fatno

CARI tablomuz
carikod
cariadi

alanlarımız var. her kayıt bir adet ürün , aynı tarih ve fatno lu aynı barkoddan çok sayıda var yani. seri nolar ile ayrılıyor , kafa karıştırmasın diye buraya almadım..

şöyle birşey çekmek istiyorum.. barkodu gireceğim , iki tarih arasını gireceğim
bu barkodlu üründen hangi carikodlar hangi tarihte kaçar tane almış.

SELECT CARIKOD , TARIH , COUNT(*) FROM STOKHAR WHERE barkod= :pbarkod and BETWEEN (:ilktarih and :sontarih) GROUP BY CARIKOD,TARIH
şeklinde birşey düşündüm ama sonrasını getiremedim . LEFT JOIN CARI ON CARI.carikod=STOKHAR.carikod ile nasıl bağlayııp cariadi nı da gösteririm..
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen esistem »

merhaba;

Kod: Tümünü seç

SELECT S.TARIH AS TARIH, S.ADET AS ADET, C.CARIADI AS CADI
FROM STOKHAR S
LEFT JOIN CARI C ON C.CARIKOD=S.CARIKOD
WHERE 
S.BARKOD=:SBARKOD
AND S.TARIH>=:ILKTARIH AND S.TARIH<=:SONTARIH
Şeklinde yaparsanız olur.
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen varyemez »

Sizin önerdiğinizde count(*) ve group by kısmı yok. ayrıca bizim tabloda STOKHAR.ADET alanı da yok. her kayıt bir adet ürünü temsil ediyor. biz kayıt adetlerini sayacağız count ile..
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen esistem »

merhaba;

Kod: Tümünü seç

SELECT S.TARIH AS TARIH, C.CARIADI AS CADI, COUNT(*) AS ADET
FROM STOKHAR S
LEFT JOIN CARI C ON C.CARIKOD=S.CARIKOD
WHERE
S.BARKOD=:SBARKOD
AND S.TARIH>=:ILKTARIH AND S.TARIH<=:SONTARIH
GROUP BY S.TARIH, C.CARIADI
şeklinde yapabilirsin o zaman.

Fakat adet neden yokki ben olsam her kayıtta 1 adet sayılsa dahi adet alanını koyarım ki bu tip listelemelerde böyle sorunlar yaşamıyayım.
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen varyemez »

sevgili @esistem madem sordun onu da söyleyeyim.. Hani ilaç kutularının üstünde karekodlar aldı ya barkodların yerini. İlaç takip sistemi (its) anlayacağın. Burada her bir kutu serino+son kull ta.+batch no ile tekil şekilde tanımlanmış durumda. onun için ürün için adet hanesi yok. her bir kayıt farklı bir kutuyu temsil ediyor , bir adet yani. bunu da count ile saymak zorundayız.
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen esistem »

merhaba;
anladığım kadarı ile başka bir programın veritabanından bilgi çekmek istiyorsunuz.
o halde sanırım son verdiğim kod işinizi görmüştür.

kolay gelsin...
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Gruplamalı SQL ifadesi

Mesaj gönderen varyemez »

verdiğiniz kod işimi gördü.. teşekkürler. basitçe tarih - cariadı - kututoplam şeklinde bir liste alabiliyorum :bravo:

bu program stok-fatura programı değil. tablo adlarının öyle olduğuna bakmayın. çıkan kutuların karekod bilgilerini müşteriye transferini sağlayan değişik birşey. veritabanı da yabancı değil , bizzat program kendi kullanıyor.
Cevapla