Sql ifadesi ile şarta bağlı 3 taplodan veri almak toplatmak

Katılım
14 Ocak 2005
Mesajlar
792
Excel Vers. ve Dili
Ofis 2010 2016
Altın Üyelik Bitiş Tarihi
13/03/2022
selam;
Sql serverde bu şekilde 3 adet taplom var bunlardan aşağıda göstermiş olduğum gibi sql ifadeleri ile sonuç elde etmek istiyorum.

SATIS TURU
STUR_KODSTUR_AD1KİTAPLAR2DERGİLER3TEKSTİLMALZEMELERM_MAL_KODM_MAL_ADM_MAL_SAT_TUR1001ASP11002BILD21003MAVİ CEKET31004SİYAH CEKET31005DELPHİ11006KIRMIZI GÖMLEK31007YEŞİL GÖMLEK31008SİYAH PANTOLON31009GRİ PANTOLON3SATISLARS_TARIHS_BOLUMS_KRITERS_MAL_KODS_MAL_ADS_TUTAR01.11.2008211201001ASP1001.11.2008211201002BILD2005.11.2008221201003MAVI CEKET3006.11.2008231301004SIYAH CEKET3010.11.2008221301005DELPHI1011.11.2008221301006BILD2012.11.2008211301007YEŞİL GÖMLEK5013.11.200821421009GRİ PANTOLON5014.11.200822411002BILD2015.11.200823421003MAVİ CEKET3016.11.200824431001ASP1017.11.2008241201001ASP1018.11.2008231301006KIRMIZI GÖLEK4019.11.200821411005DELPHİ1020.11.2008211201009GRİ PANTOLON2021.11.2008211301008GRİ PANTOLON50Bu şekilde 3 adet sql serverde taplom var.Yapmak istediğim Sql ifadeleri ile Aşağıdaki bir taplo elde etmekYani 01/11/08 ile 30/11/08 tarihleri arası S_KRITER IN(120,130) OLANLARIN STUR_KOD VE STUR_AD LARIDASORGUDA GELECEK ŞEKİLDE S_TUTAR TOPLAMLARINI ALDIRABİLECEĞİM BİR İFADE.S_BOLUMSTUR_KODSTUR_ADS_KRITERS_TUTAR211KİTAPLAR12010212DERGİLER12020213TEKSTİL12020213TEKSTİL130100223TEKSTİL12030221KİTAPLAR13010222DERGİLER13020233TEKSTİL13070SON OLARAKYine 01/11/08 ile 30/11/08 tarihleri arasında S_KRITER IN(120,130) TOPLAMLARININI STUR ADINA GÖREtoplatacak ve Diğer (120 ve 130 dışında kalnalarında diğ toplam tutara toplatacak Sql ifadesine ihtiyacım var.S_BOLUMSTUR_KODSTUR_AD120 VE 130 TOP.TUTDİĞ.TOP.TUTAR211KİTAPLAR1010212DERGİLER200213TEKSTİL12050221KİTAPLAR1020222DERGİLER200223TEKSTİL300233TEKSTİL7070

sanırım burda biraz karışık oldu Ben yapmak istediklerimi bir excel sayfasında açıkladım ordan indirip bakabilirseniz çok sevinirim.

İlgilenen arkadaşlarıma şimdiden teşkkür ederim.
 

Ekli dosyalar

Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu birinci sorgunuzun yalın hali..

Kod:
SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE (((SATISLAR.S_KRITER)=120 Or (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))
Buda gruplanmış hali..:

Kod:
SELECT trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD, Sum(trz.S_TUTAR) AS ToplaS_TUTAR
FROM (SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE (((SATISLAR.S_KRITER)=120 Or (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))) AS trz
GROUP BY trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD
Buda diğer sorgunuz..:

Kod:
SELECT a.S_BOLUM, a.STUR_KOD, a.STUR_AD, a.ToplaS_TUTAR, Sum(b.ToplaS_TUTAR) AS ToplaToplaS_TUTAR
FROM (SELECT trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD, Sum(trz.S_TUTAR) AS ToplaS_TUTAR
FROM (SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE ((Not (SATISLAR.S_KRITER)=120 And Not (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))) AS trz
GROUP BY trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD) AS b INNER JOIN (SELECT trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD, Sum(trz.S_TUTAR) AS ToplaS_TUTAR
FROM (SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE (((SATISLAR.S_KRITER)=120 Or (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))) AS trz
GROUP BY trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD) AS a ON b.STUR_KOD = a.STUR_KOD
GROUP BY a.S_BOLUM, a.STUR_KOD, a.STUR_AD, a.ToplaS_TUTAR
 
Katılım
14 Ocak 2005
Mesajlar
792
Excel Vers. ve Dili
Ofis 2010 2016
Altın Üyelik Bitiş Tarihi
13/03/2022
ÇOK TEŞKKÜR EDERİM SORGULARINIZ İÇİN ELİNİZE EMEĞİNİZE SAĞLIK
En sondaki sorguyu denedim ama şöyle bir hata aldım

SQL SERVER ERROR: SQL STATE:42000, SQL ERROR CODE;156
İNCORRECT SYNTAX NEAR THE KEYWORD 'AS'

ŞEKLİNDE BİR HATA VERDİ SEBEBİ NEDİR ACABI
 
Katılım
14 Ocak 2005
Mesajlar
792
Excel Vers. ve Dili
Ofis 2010 2016
Altın Üyelik Bitiş Tarihi
13/03/2022
Sayın taruz aşağıdaki sorgunuzu denedim ama hata aldım lütfen Kısa kısa açıklayarak anlatabilirseniz mantığını tam olarak anlayamdım. Çözemedim yani
Lütfen yardım edin zor durumda kaldım.

Buda diğer sorgunuz..:

Kod:
SELECT a.S_BOLUM, a.STUR_KOD, a.STUR_AD, a.ToplaS_TUTAR, Sum(b.ToplaS_TUTAR) AS ToplaToplaS_TUTAR
FROM (SELECT trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD, Sum(trz.S_TUTAR) AS ToplaS_TUTAR
FROM (SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE ((Not (SATISLAR.S_KRITER)=120 And Not (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))) AS trz
GROUP BY trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD) AS b INNER JOIN (SELECT trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD, Sum(trz.S_TUTAR) AS ToplaS_TUTAR
FROM (SELECT SATISLAR.S_BOLUM, [SATIS TURU].STUR_KOD, [SATIS TURU].STUR_AD, SATISLAR.S_KRITER, SATISLAR.S_TUTAR, SATISLAR.S_TARIH
FROM [SATIS TURU] INNER JOIN (MALZEMELER INNER JOIN SATISLAR ON MALZEMELER.M_MAL_KOD = SATISLAR.S_MAL_KOD) ON [SATIS TURU].STUR_KOD = MALZEMELER.M_MAL_SAT_TUR
WHERE (((SATISLAR.S_KRITER)=120 Or (SATISLAR.S_KRITER)=130) AND ((SATISLAR.S_TARIH)>=#11/1/2008# And (SATISLAR.S_TARIH)<=#11/30/2008#))) AS trz
GROUP BY trz.S_BOLUM, trz.STUR_KOD, trz.STUR_AD) AS a ON b.STUR_KOD = a.STUR_KOD
GROUP BY a.S_BOLUM, a.STUR_KOD, a.STUR_AD, a.ToplaS_TUTAR
[/quote]
 
Üst