secenege bagli SQL sorgusu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

secenege bagli SQL sorgusu

Mesaj gönderen musti »

s.a

sorun oldum abi.
SQL ile cozemedim illa ayri bir dosyaya yazmak zorunda kaliyorum bunu sql ile nasıl cozebilirim

iki tableniz var birincisi
KODU ADI
1 1 DEGERİ
10 10 DEĞERİ
100 100 DEGERİ
1000 1000 DEĞERİ
11 11 DEGERİ
110 110 DEGERİ
2 2 DEĞERİ
20 20 DEĞER
200 200 DEĞERİ

ikincisi

KODU BORC ALACAK
100 10
100 10
100 15
100 - 5
1000 5
1000 10
200 10
200 20
110 10
110 20

gibi
bir sql ifadesi ile

gostermek istedigim

KODU ADI BORC TOPLAM ALACAK TOPLAM
1 1 DEGERİ 80 5
10 10 DEĞERİ 50 5
100 100 DEGERİ 35 5
1000 1000 DEĞERİ 15
11 11 DEĞERİ 30
110 110 dğeri 30
200 200 DEĞERİ 30


YANİ 1. table başlayanları ikinci table like % işareti al toplamı goster

bunu sorunsuz yapıyorum ama bir aralık olunca yani 100 ile 110 arasında olunca sadece bu iki kod arasın olanlar 1. deger toplam alması lazim

bunu sql ile nasil yapabilirim
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Merhaba,
Sizin istediğiniz çıktıyı ben

Kod: Tümünü seç

SELECT KODU, SUM(B.HBORC) TOP_BORC,SUM(B.HALACAK) TOP_ALACAK FROM MUSTI  A, MUSTI2 B WHERE B.HKODU LIKE A.KODU+'%'  GROUP BY KODU 
şeklinde bir komutla alıyorum. Yanlız. ben de 100 degeri 35 5 yerine 50 5 çıkıyor.
Aşağıdaki kodu yazınca :

Kod: Tümünü seç

SELECT KODU, SUM(B.HBORC) TOP_BORC,SUM(B.HALACAK) TOP_ALACAK FROM MUSTI  A, MUSTI2 B WHERE B.HKODU LIKE A.KODU+'%'  GROUP BY KODU haVING KODU BETWEEN '100' AND '110'

Kodu Toplam Borc Toplam Alacak
------ -------------- ---------------
100 50 5
1000 15 0
11 30 0
110 30 0

şeklinde çıkıyor. Bu sizin aradığınız şey midir? Değilse önceki örneğe göre bir çıktı yazın. Bir daha bakalım.

İyi çalışmalar.

__________________
ofenX
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
musti
Üye
Mesajlar: 527
Kayıt: 11 Tem 2005 09:44

Mesaj gönderen musti »

Gerci ben bu konuyu hallettim ama ocncalcfiled olayına kod yazarak
yinede sql le yapacak olsam degistiririm cunku devamlı alınan bir rapor

2 tablen var
masterda bir kod alanın var, birde adı alanın var. birde turu alanın var
detail dosyanda hesap_kodu,borc,alacak,tarih var.

raporunda turu='M' olmayanların kod ile baslayarın toplam sumlarının toplamı alınacak ve turu=M' olanları sum ları alınacak

yani masterda
kodu, Adı,turu
1,birinci adı,nill
10,onuncu ad,nill
100,yuzuncu adi, A
100_01,yuzun birincisi,M
100_02, yuzun ikincisi,M
100_03,yuzun ucuncusu,M
2,ikinc adı,nill
20,yirminci adi,nill
....

9999

detail dosyanda ise
tarih,kodu,borc,alacak
01.01.2005,100_01,10,0
02.01.2005,100_01,20,0
03.01.2005,100_01,30,0
04.01.2005,100_02,0,10
05.01.2005,100_02,10,0

20.01.2005,200_02,10,0



sonuc olarak SQL de istenilen ise yani rapor

kodu,adi,Toplam borc,toplamalacak,borc bakiye ,alacak bakiye
1,birinci adı,70,0,70,0
10,onuncu ad,70,070,0
..
...

gibi





[/quote]
Cevapla