Sayfayı Yazdır | Pencereyi Kapat

üç tablo birlesimi

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=2112
Tarih: 22 Ağustos 2025 Saat 15:11
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: üç tablo birlesimi
Mesajı Yazan: kıl_ark
Konu: üç tablo birlesimi
Mesaj Tarihi: 14 Mayıs 2010 Saat 18:47
merhaba
 
excel de query araciligi ile grup toplamli bir mizan hazirliyorum
 
tblmugrup , tblmuplan ve tblmuhfis tablolarini kullaniyorum
sorunum birlestirme yaparken tblmugrup tüm degerleri ile birlessin istiyorum
1
10
100
100-01 gibi siralasin istiyorum
fakat dis birlesimlerde üç tabo birlesimi varsa tüm degerler birlesimi yapmiyor.
 
ilk kullandigim cümle
 
SELECT TBLMUPLAN.HS_GRKOD,TBLMUGRUP.GRUP_ISIM,  sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN,TBLMUGRUP TBLMUGRUP
WHERE TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND TBLMUPLAN.HS_GRKOD = TBLMUGRUP.GRUP_KOD
group by TBLMUPLAN.HS_GRKOD,TBLMUGRUP.GRUP_ISIM

union all
SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,  sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN,TBLMUGRUP TBLMUGRUP
WHERE TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND TBLMUPLAN.HS_GRKOD = TBLMUGRUP.GRUP_KOD
group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI
order by TBLMUPLAN.HS_GRKOD
 
seklinde
 
bu cümlenin sonucunda
10
100-01 çikiyor
 
en üstteki 1 ve aradaki 100 çikmiyor.
 
yardimlarinizi bekliyorum
 



Cevaplar:
Mesajı Yazan: Conari
Mesaj Tarihi: 17 Mayıs 2010 Saat 08:59
 MUGRUP a LEFT OUTER JOIN ile baglan.
ve hesap kodu ile grup kodlarini uzunluguna göre esitle.
 MUGRUP.GRUP_KOD=SUBSTRING(TBLMUHFIS.HESAP_KODU,1,LEN(MUGRUP.GRUP_KOD))


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 17 Mayıs 2010 Saat 09:27
cümle içerisine nasil ilave edecegimi bilemedim yardimci olurmusunuz


Mesajı Yazan: Conari
Mesaj Tarihi: 17 Mayıs 2010 Saat 16:50
bu tek sql ile olucak bir is degil. SP yazmak lazim.

-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 17 Mayıs 2010 Saat 19:11

Selam,

Tek bir viewda da yapilabilir. Isterseniz siz bana hesap plani seviyenizi söyleyin. Ona göre kodlayayim. Yada asagidakine bakarak siz düzenleyin.
Örnek Planda kullanilan hesap plani seviyesi  3-2-2-4'dür.
 
Iyi Çalismalar...

---------------X

SELECT C.GRUP_KOD,

C.GRUP_ISIM,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUGRUP C ON LEFT(A.HES_KOD,1) = C.GRUP_KOD

group by C.GRUP_KOD,C.GRUP_ISIM

UNION ALL

---------------XX

SELECT C.GRUP_KOD,

C.GRUP_ISIM,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUGRUP C ON LEFT(A.HES_KOD,2) = C.GRUP_KOD

group by C.GRUP_KOD,C.GRUP_ISIM

UNION ALL

---------------XXX

SELECT B.HESAP_KODU,

B.HS_ADI,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUPLAN B ON LEFT(A.HES_KOD,3)= B.HESAP_KODU

GROUP BY B.HESAP_KODU,

B.HS_ADI

UNION ALL

---------------XXX-YY

SELECT B.HESAP_KODU,

B.HS_ADI,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUPLAN B ON LEFT(A.HES_KOD,6)= B.HESAP_KODU

GROUP BY B.HESAP_KODU,

B.HS_ADI

UNION ALL

---------------XXX-YY-ZZ

SELECT B.HESAP_KODU,

B.HS_ADI,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUPLAN B ON LEFT(A.HES_KOD,9)= B.HESAP_KODU

GROUP BY B.HESAP_KODU,

B.HS_ADI

UNION ALL

---------------XXX-YY-ZZ-YYYY

SELECT B.HESAP_KODU,

B.HS_ADI,

sum(case when A.BA='1' then A.TUTAR else 0 end) as bor,

sum(case when A.BA='2' then A.TUTAR else 0 end) as alacak

FROM TBLMUHFIS A

INNER JOIN TBLMUPLAN B ON A.HES_KOD= B.HESAP_KODU

GROUP BY B.HESAP_KODU,

B.HS_ADI

ORDER BY C.GRUP_KOD



-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 17 Mayıs 2010 Saat 19:46
tekrar merhaba
asagidaki cümle ile x ve xx gruplarini hallettim sirada xxx var oraya çözüm bulamadim xxx den sonrasinda da bir problem yok
 
örnek : 1 tamam
           10 tamam
           100 çözüm yok
           100-01 tamam cümleye ilave edecegim
 
SELECT SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1) AS 'KOD', TBLMUGRUP.GRUP_ISIM, sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN, TBLMUGRUP TBLMUGRUP
where TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND   TBLMUGRUP.GRUP_KOD=SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1)
group by SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1),TBLMUGRUP.GRUP_ISIM
union all
SELECT SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2) AS 'KOD', TBLMUGRUP.GRUP_ISIM, sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN, TBLMUGRUP TBLMUGRUP
where TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND   TBLMUGRUP.GRUP_KOD=SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2)
group by SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2),TBLMUGRUP.GRUP_ISIM
 
 
 


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 17 Mayıs 2010 Saat 19:48
Selam,
Benim yazdigimi neden kullanmiyorsunuz?
 
Iyi Çalismalar...


-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 18 Mayıs 2010 Saat 09:29
hesap planinda bozukluk var  3-2-2.... gibi gitmiyor sorun orda


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 18 Mayıs 2010 Saat 09:49
asagidaki cümle tüm hesaplari görüntüledim sadece hesap planindaki ana hesap ile grup hesaplarin borç alacak toplamlari kaldi
cümle:
SELECT SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1) AS 'KOD', TBLMUGRUP.GRUP_ISIM, sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN, TBLMUGRUP TBLMUGRUP
where TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND   TBLMUGRUP.GRUP_KOD=SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1)
group by SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1),TBLMUGRUP.GRUP_ISIM
union all
SELECT SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2) AS 'KOD', TBLMUGRUP.GRUP_ISIM, sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM TBLMUHFIS TBLMUHFIS, TBLMUPLAN TBLMUPLAN, TBLMUGRUP TBLMUGRUP
where TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD AND   TBLMUGRUP.GRUP_KOD=SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2)
group by SUBSTRING(TBLMUPLAN.HESAP_KODU,1,2),TBLMUGRUP.GRUP_ISIM
union all
SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,  sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM {oj DAT1052010.dbo.TBLMUPLAN TBLMUPLAN LEFT OUTER JOIN DAT1052010.dbo.TBLMUHFIS TBLMUHFIS ON TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD}
where  (TBLMUPLAN.AGM='a')
group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI
union all
SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,  sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM {oj DAT1052010.dbo.TBLMUPLAN TBLMUPLAN LEFT OUTER JOIN DAT1052010.dbo.TBLMUHFIS TBLMUHFIS ON TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD}
where  (TBLMUPLAN.AGM='g')
group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI
union all
SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,  sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as borç, sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak
FROM {oj DAT1052010.dbo.TBLMUPLAN TBLMUPLAN LEFT OUTER JOIN DAT1052010.dbo.TBLMUHFIS TBLMUHFIS ON TBLMUPLAN.HESAP_KODU = TBLMUHFIS.HES_KOD}
where  (TBLMUPLAN.AGM='m')
group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI

order by SUBSTRING(TBLMUPLAN.HESAP_KODU,1,1)


Mesajı Yazan: Conari
Mesaj Tarihi: 18 Mayıs 2010 Saat 12:15
TBLMUHFIS te ana ve grup hesaplar olmayacagindan o sekilde gelmez.
uzunluklarina göre esitlemen lazim.
Su sekilde degistir.

SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,

sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as bor,

sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak

FROM {oj TBLMUPLAN TBLMUPLAN

LEFT OUTER JOIN TBLMUHFIS TBLMUHFIS ON TBLMUPLAN.HESAP_KODU = SUBSTRING(TBLMUHFIS.HES_KOD,1,3)}

where (TBLMUPLAN.AGM='a')

group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI

union all

SELECT TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI,

sum(case when TBLMUHFIS.BA='1' then TBLMUHFIS.TUTAR else 0 end) as bor,

sum(case when TBLMUHFIS.BA='2' then TBLMUHFIS.TUTAR else 0 end) as alacak

FROM {oj TBLMUPLAN TBLMUPLAN

LEFT OUTER JOIN TBLMUHFIS TBLMUHFIS ON TBLMUPLAN.HESAP_KODU = SUBSTRING(TBLMUHFIS.HES_KOD,1,6)}

where (TBLMUPLAN.AGM='g')

group by TBLMUPLAN.HESAP_KODU, TBLMUPLAN.HS_ADI



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 18 Mayıs 2010 Saat 12:19
hesap plani inanin çok bozuk SUBSTRING(TBLMUHFIS.HES_KOD,1,6 bu tür yapilar fayda saglamiyor


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 18 Mayıs 2010 Saat 12:20
ana , grup ve muavin tiplerine indirgeme yapmam lazim


Mesajı Yazan: Conari
Mesaj Tarihi: 18 Mayıs 2010 Saat 13:32
Bu sekilde dene

................... ON TBLMUPLAN.HESAP_KODU = SUBSTRING(TBLMUHFIS.HES_KOD,1,LEN(TBLMUPLAN.HESAP_KODU))}



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 18 Mayıs 2010 Saat 14:20
Orjinalini yazan: Conari Conari Yazdı:

Bu sekilde dene

................... ON TBLMUPLAN.HESAP_KODU = SUBSTRING(TBLMUHFIS.HES_KOD,1,LEN(TBLMUPLAN.HESAP_KODU))}

 
bu cümle raporumu tamamladi.
çok tesekkür ediyorum emegi geçen arkadaslarin eline saglik


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 22 Mayıs 2010 Saat 17:56

tekrar merhaba

olusturdugum mizanda grup kod , grup isim ve gruplara ait toplamlarda renk vermek istiyorum
örn:
1
2
3 gibi gruplar kirmizi
11
12
13 gibi gruplar mavi
100
120
300 gibi gruplar yesil renk vermek istiyorum (sql komutu ile mümkünmü)
 
 


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 22 Mayıs 2010 Saat 19:07

Selam,

Sql'de sizin istediginiz gibi renklendirme yapilamamaktadir. Siz bu renklendirmeyi Excel'de VB kodlamasi ile rahatlikla yapabilirsiniz. Office disinda oldugumdan size kodlama örnegi gönderemiyorum. Siz arastirin bulamazsaniz destek veririm.

Iyi Çalismalar...



-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 24 Mayıs 2010 Saat 09:06
tesekkür ederim


Mesajı Yazan: Conari
Mesaj Tarihi: 24 Mayıs 2010 Saat 10:43
kosullu biçimlendirme den
 
formül seçip bunu girin ve biçim ayarlarini yapin.
=EGER(UZUNLUK(A2)=1;1)
 
A2 deki hesap uzunlugu 1 e esit ise verceginiz biçime göre renklenir. Diger uzunluklar içinde ekleme yapin. sonra diger hücrelere de uygulayin.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 24 Mayıs 2010 Saat 12:38
tekkürler



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net