Genel Toplam Alamıyorum
Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: ERP Genel
Forum Adı: ERP Rapor Hazırlama
Forum Tanımlaması: ERP Rapor Hazırlama
URL: http://www.erpne.org/forum_posts.asp?TID=3850
Tarih: 22 Kasım 2024 Saat 13:54 Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com
Konu: Genel Toplam Alamıyorum
Mesajı Yazan: xenium
Konu: Genel Toplam Alamıyorum
Mesaj Tarihi: 02 Eylül 2014 Saat 11:57
Merhaba üstadlar,
bir rapor yaptym ama raporun en altyna BORÇ ve ALACAK sütunlary için bir türlü GENEL TOPLAM alamadym.
Group by CUBE ve ROLLUP i?e yaramyyor.. Yardymcy olursanyz sevinirim..
KOD ?ÖYLE:
select TBLCAHAR.CARI_KOD,TBLCASABIT.CARI_ISIM,TBLCASABIT.M_KOD AS 'MUH.KOD',TBLCASABIT.ISKONTO_ORANI AS 'YSK.ORAN',TBLCAHAR.BELGE_NO,TBLCAHAR.TARIH,TBLCAHAR.ACIKLAMA, TBLCAHAR.BORC,TBLCAHAR.ALACAK from TBLCAHAR
LEFT JOIN TBLCASABIT ON TBLCAHAR.CARI_KOD=TBLCASABIT.CARI_KOD WHERE TBLCASABIT.M_KOD LIKE '120%' ORDER BY ACIKLAMA
|
Cevaplar:
Mesajı Yazan: Conari
Mesaj Tarihi: 02 Eylül 2014 Saat 18:01
O ?ekilde toplam olmaz. altyna bunu ekleyin ama sütunlary doldurmak gerek.
UNION ALL select
'','','',0','','','',sum(TBLCAHAR.BORC),sum(TBLCAHAR.ALACAK) from TBLCAHAR LEFT JOIN TBLCASABIT ON TBLCAHAR.CARI_KOD=TBLCASABIT.CARI_KOD WHERE TBLCASABIT.M_KOD LIKE '120%' Group by TBLCAHAR.CARI_KOD ORDER BY ACIKLAMA
------------- Netsisden vazgeçemiyorum. Beni engelliyor..
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 02 Eylül 2014 Saat 18:09
WITH CTE_TOPLAM as (SELECT 'z TOPLAM' ACIKLAMA,SUM(BORC) BORC_T,SUM(ALACAK) ALACAK_T FROM TBLCAHAR A INNER JOIN TBLCASABIT B ON A.CARI_KOD=B.CARI_KOD WHERE B.M_KOD LIKE '120%') SELECT * FROM (select TBLCAHAR.CARI_KOD,TBLCASABIT.CARI_ISIM,TBLCASABIT.M_KOD AS 'MUH.KOD',TBLCASABIT.ISKONTO_ORANI AS 'YSK.ORAN',TBLCAHAR.BELGE_NO,TBLCAHAR.TARIH,TBLCAHAR.ACIKLAMA, TBLCAHAR.BORC,TBLCAHAR.ALACAK from TBLCAHAR INNER JOIN TBLCASABIT ON TBLCAHAR.CARI_KOD=TBLCASABIT.CARI_KOD WHERE TBLCASABIT.M_KOD LIKE '120%' UNION ALL SELECT NULL,NULL,NULL,0,NULL,NULL,ACIKLAMA,BORC_T,ALACAK_T FROM CTE_TOPLAM) VV ORDER BY ACIKLAMA
biraz uzun oldu CTE'yi daha güzel kullanyp kysaltabilirsiniz
------------- Mehmet Baykan
|
Mesajı Yazan: xenium
Mesaj Tarihi: 03 Eylül 2014 Saat 09:02
Te?ekkürler, mbaykan ve Conari.
Aslynda istedi?im ?öyle bir sonuç almakty.. Genel toplam aldy?ymyz bir yerlere " where STOK_KODU LIKE 'A%' gibi bir?ey yazmak mümkün mü?
STOK
KODI |
ADI |
MYKTAR |
TUTAR |
A-001 |
STOK 1 |
1 |
10 |
A-002 |
STOK 2 |
1 |
10 |
A-003 |
STOK 3 |
1 |
10 |
A YLE BA?LAYANLARIN TOPLAMI |
|
3 |
30 |
B-001 |
STOK 1 |
5 |
50 |
B-002 |
STOK 2 |
5 |
50 |
B-003 |
STOK 3 |
5 |
50 |
B YLE BA?LAYANLARIN TOPLAMI |
|
15 |
150 |
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 03 Eylül 2014 Saat 09:08
siz biraz kurnazlyk yapyyorsunuz.. önceki sogu CAHAR/CASABIT iken ?imdi STHAR/STSABIT'li bir rapor istedi?inizi söylüyorsunuz. Cevaby conari ve benim yazdyklarymy birle?tirin
------------- Mehmet Baykan
|
Mesajı Yazan: xenium
Mesaj Tarihi: 03 Eylül 2014 Saat 09:57
Hayyr hayyr kesinlikle kurnazlyk de?il Üzüldüm ?imdi, hiç yapmady?ym bir ?eydir, bi daha soru sormayayym o zaman :)
Sadece manty?yny çözmek istiyorum. Ylk gönderdi?im raporu rastgele gönderdim size. Amaç neyi yapmak istedi?imi size ifade etmekti.
Rapor falan istemiyorum, nasyl yapylyr onu ö?renmek istiyorum.
Bu arada sizin rapor çaly?ty ama borç ve alacak toplamy yapty?ym testte do?ru çykmady sanki (belki tam test edemedim). Conari nin raporu ise ?u hatayy verdi:
Msg 156, Level 15, State 1, Line 13 Incorrect syntax near the keyword 'UNION'. Msg 103, Level 15, State 4, Line 16 The identifier that starts with ',',',',sum(TBLCAHAR.BORC),sum(TBLCAHAR.ALACAK) from TBLCAHAR LEFT JOIN TBLCASABIT ON TBLCAHAR.CARI_KOD=TBLCASABIT.CARI_KOD WHERE TBLCASABIT.M_KOD LIKE ' is too long. Maximum length is 128. Msg 105, Level 15, State 1, Line 18 Unclosed quotation mark after the character string ' Group by TBLCAHAR.CARI_KOD ORDER BY ACIKLAMA '.
|
Mesajı Yazan: xenium
Mesaj Tarihi: 03 Eylül 2014 Saat 10:01
Bu arada yazdy?ym raporu payla?ayym, genel toplamy bu ve buna benzer raporlarda uygulayacapym..
SELECT
STOK_KODU, (SELECT STOK_ADI FROM TBLSTSABIT WHERE TBLSTSABIT.STOK_KODU=TBLSTHAR.STOK_KODU) AS 'STOK ADI', IRSALIYE_NO,STHAR_SIPNUM, STHAR_BGTIP AS 'HAR.TYP', CASE WHEN STHAR_BGTIP='I' THEN 'YRSALYYEDEN' WHEN STHAR_BGTIP='F' THEN 'FATURADAN'
ELSE '0' END AS 'HAREKET NERDEN',
STHAR_GCKOD,STHAR_GCMIK AS MIKTAR,
ISNULL(STHAR_NF*STHAR_GCMIK,0) AS 'NET ÇIKI? TUTAR',(SELECT OLCU_BR1 FROM TBLSTSABIT WHERE TBLSTSABIT.STOK_KODU=TBLSTHAR.STOK_KODU) AS 'Br', (SELECT DEPO_KODU FROM TBLSTSABIT WHERE TBLSTSABIT.STOK_KODU=TBLSTHAR.STOK_KODU) AS 'DEPO KODU',STHAR_TARIH,
LISTE_NO AS 'LYSTEDEKY KAÇINCI FYYAT',LISTE_FIAT AS 'HANGY LYSTE FYYATI', STHAR_SATISK AS 'SATIR YSK.', STHAR_SATISK2 AS '2.YSKONTO',STRA_SATISK3 AS '3.YSKONTO', STRA_SATISK4 AS '4.YSKONTO',STRA_SATISK5 AS '5.YSKONTO', STRA_SATISK6 AS '6.YSKONTO',
STHAR_ODEGUN, DEPO_KODU, FISNO,STHAR_CARIKOD AS 'CARY',
STHAR_KOD1, STHAR_KOD2, KOSULKODU, STHAR_HTUR, CASE WHEN STHAR_HTUR='A' THEN 'DEVYR' WHEN STHAR_HTUR='B' THEN 'DEPOLAR ARASI TRF.' WHEN STHAR_HTUR='C' THEN 'ÜRETYM' WHEN STHAR_HTUR='D' THEN 'MUHTELYF' WHEN STHAR_HTUR='E' THEN 'MYKTARSIZ MALYYET' WHEN STHAR_HTUR='F' THEN 'KONSYNYE' WHEN STHAR_HTUR='H' THEN 'YRSALYYE TYPLY HAR.' WHEN STHAR_HTUR='I' THEN 'KAPALI FATURA' WHEN STHAR_HTUR='J' THEN 'AÇIK FATURA'
ELSE '0' END AS 'HAREKET',
STHAR_ODEGUN,VADE_TARIHI, STHAR_FTIRSIP AS 'FAT.TIP', CASE WHEN STHAR_FTIRSIP='1' THEN 'SATI? FATURASI' WHEN STHAR_FTIRSIP='2' THEN 'ALI? FATURASI' WHEN STHAR_FTIRSIP='3' THEN 'SATI? YRSALYYESY' WHEN STHAR_FTIRSIP='4' THEN 'ALI? YRSALYYESY' WHEN STHAR_FTIRSIP='5' THEN 'SATI? FATURASI' WHEN STHAR_FTIRSIP='6' THEN 'MÜ?TERY SYPARY?Y' WHEN STHAR_FTIRSIP='7' THEN 'SATICI SYPARY?Y' WHEN STHAR_FTIRSIP='8' THEN 'DEPO ARASI TRF. GYRY?' WHEN STHAR_FTIRSIP='9' THEN 'DEPO ARASI TRF. ÇIKI?'
ELSE '0' END AS 'FAT TYPY'
FROM TBLSTHAR WHERE FISNO IS NOT NULL AND STHAR_GCKOD='C' AND STHAR_TARIH = '2014-08-25' AND STHAR_HTUR='J' AND STOK_KODU LIKE 'M-%'
|
Mesajı Yazan: Conari
Mesaj Tarihi: 03 Eylül 2014 Saat 10:14
Arkada? ö?renmek istiyorsun iyi güzelde bu ?ekilde çok zor, Kod hata verdi yerine neresinde hata oldu?unu bulmaya çaly?saydyn..
Kodu test etmeden, örneklemek için yazdyk. Yoksa iki cümleyi birle?tirir verirdik.
Bir iki deneme yanylma yap, çözemezsen yardymcy oluruz tabii ki.
@Mbaykan hocam pat diye scripti veriyor. ma?allah
------------- Netsisden vazgeçemiyorum. Beni engelliyor..
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 03 Eylül 2014 Saat 10:28
Raporunuza detayly bakamadym, ama toplamly (ara toplamly) bir sorgu a?a?ydaki gibi olur. (yazdyktan sonra CTE'ye gerek olamady?yny da gördüm ama de?i?tirmedim)
WITH CTE_TOP AS (SELECT STOK_KODU,'~TOPLAM ' ACIKLAMA, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR GROUP BY STOK_KODU) SELECT ZZ.STOK_KODU,B.STOK_ADI,STHAR_TARIH,FISNO, ACIKLAMA ,GIRIS,CIKIS FROM (SELECT STOK_KODU,STHAR_TARIH,FISNO,STHAR_ACIKLAMA ACIKLAMA, CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END CIKIS FROM TBLSTHAR UNION ALL SELECT STOK_KODU,NULL,NULL,ACIKLAMA,GIRIS,CIKIS FROM CTE_TOP) ZZ JOIN TBLSTSABIT B ON ZZ.STOK_KODU=B.STOK_KODU ORDER BY STOK_KODU,ACIKLAMA DESC
------------- Mehmet Baykan
|
Mesajı Yazan: xenium
Mesaj Tarihi: 03 Eylül 2014 Saat 11:48
Merhaba Conari,
The identifier that starts with ',',',',sum(TBLCAHAR.BORC),sum(TBLCAHAR.ALACAK) from TBLCAHAR LEFT JOIN TBLCASABIT ON TBLCAHAR.CARI_KOD=TBLCASABIT.CARI_KOD WHERE TBLCASABIT.M_KOD LIKE ' is too long. Maximum length is 128.
iletisini görünce çok fazla ara?tyrmadym; aksi takdirde tabi ki iyice kontrol ederdim. Ve dünden 1 saatimi genel toplam alma ilgili internette döküman okumayaa ayyrdym, yani emek sarfetmeden sizi rahatsyz etmek niyetinde de?ilim.
|
Mesajı Yazan: xenium
Mesaj Tarihi: 03 Eylül 2014 Saat 12:09
Kod için te?ekkürler mbaykan.
Raporunuz, a?a?ydaki mantykla bir sonuç veriyor. Yani her ürün için ayry ayry toplam alyyor.
STOK KODI | ADI | MYKTAR | TUTAR | A-001 | STOK 1 | 1 | 10 | A-001 | STOK 1 | 1 | 10 | A-001 | STOK 1 | 1 | 10 | A-001 YN TOPLAMI | | 3 | 30 | B-002 | STOK 2 | 5 | 50 | B-002 | STOK 2 | 5 | 50 | B-002 | STOK 2 | 5 | 50 | B-002 YN TOPLAMI | | 15 | 150 |
Ama ben ?u ?ekilde almak istiyordum; mümkün müdür teknik olarak?
STOK KODI | ADI | MYKTAR | TUTAR | A-001 | STOK 1 | 1 | 10 | A-002 | STOK 2 | 1 | 10 | A-003 | STOK 3 | 1 | 10 | A YLE BA?LAYANLARIN TOPLAMI | | 3 | 30 | B-001 | STOK 1 | 5 | 50 | B-002 | STOK 2 | 5 | 50 | B-003 | STOK 3 | 5 | 50 | B YLE BA?LAYANLARIN TOPLAMI | | 15 | 150 |
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 03 Eylül 2014 Saat 12:25
WITH CTE_TOP AS (SELECT STOK_KODU,'~TOPLAM ' ACIKLAMA, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR GROUP BY STOK_KODU), CTE_1ST AS (SELECT LEFT(STOK_KODU,1) ILK,'~ '+LEFT(STOK_KODU,1)+' ILE BASLAYANLARIN TOP. ' ACIKLAMA, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR GROUP BY LEFT(STOK_KODU,1)), CTE_ALL AS (SELECT '~~ GENEL TOPLAM ' ACIKLAMA, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR ) SELECT ZZ.STOK_KODU,B.STOK_ADI,STHAR_TARIH,FISNO, ACIKLAMA ,GIRIS,CIKIS FROM (SELECT STOK_KODU,STHAR_TARIH,FISNO,STHAR_ACIKLAMA ACIKLAMA, CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END GIRIS, --TBLCAHAR'DA BORC ve ALACAK OLARAK AYRI ZATEN CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END CIKIS FROM TBLSTHAR UNION ALL (SELECT ILK+'~',NULL,NULL,ACIKLAMA,GIRIS,CIKIS FROM CTE_1ST UNION ALL (SELECT STOK_KODU,NULL,NULL,ACIKLAMA,GIRIS,CIKIS FROM CTE_TOP UNION ALL SELECT '~~',NULL,NULL,ACIKLAMA,GIRIS,CIKIS FROM CTE_ALL )) ) ZZ LEFT JOIN TBLSTSABIT B ON ZZ.STOK_KODU=B.STOK_KODU ORDER BY STOK_KODU DESC,STHAR_TARIH,ACIKLAMA DESC
kod syralamasy için ek kolona ihtiyaç var. Ben kestirmeden Stok kodunu azalan (DESC) yaparak görünümü çözdüm
------------- Mehmet Baykan
|
|