enverdersin
Yeni Üye
- Katılım
- 8 Şub 2019
- Mesajlar
- 163
- En iyi yanıt
- 0
- Puanları
- 18
- Yaş
- 46
- Konum
- istanbul
- Ad Soyad
- ENVER DERSİN
Aşağıdaki mizan-SQL kodunda aşağıdaki örnekteki gibi 3 farklı cariyi 120.01.157 yi üst hesap gibi algılayıp. Diğer iki carinin rakamlarının toplamını 120.01.157 carisine atıyor. bunu nasıl düzeltebiliriz. Sorgu olarak güzel bir sorgu. Üst hesapları getiriyor. Ancak böyle bir hata var. Yardımcı olursanız sevinirim. Buradaki arkadaşlara da faydası olacaktır. İyi çalışmalar.
HESAP_KODU | BORC | ALACAK | BAKIYE |
120.01.157 | 113.573,88 | 135.218,98 | -21.645,10 |
120.01.1571 | 616,16 | 0,00 | 616,16 |
120.01.1579 | 112.957,72 | 135.218,98 | -22.261,26 |
SQL:
SELECT * FROM
(SELECT H.SEVIYE,H.HESAP_KODU,HESAP_ADI,
SUM(ISNULL(L.DEBIT,0)) AS [BORC],
SUM(ISNULL(L.CREDIT,0))AS [ALACAK],
SUM(CASE WHEN ISNULL(L.BAKIYE,0)>0 THEN ABS(ISNULL(L.BAKIYE,0)) ELSE 0 END) BORC_BAKIYE,
SUM(CASE WHEN ISNULL(L.BAKIYE,0)<0 THEN ABS(ISNULL(L.BAKIYE,0)) ELSE 0 END) ALACAK_BAKIYE,
SUM(ISNULL(L.BAKIYE,0)) 'BAKIYE',
SUM(ISNULL(K_BAKIYE,0)) 'KUM_BAKIYE'
FROM
(SELECT H.ACTIVE,H.CODE AS [HESAP_KODU],H.DEFINITION_ AS [HESAP_ADI],CASE LEN(CODE) WHEN 1 THEN -2 WHEN 2 THEN -1 ELSE
LEN(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(H.CODE,'0',''),'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''),'8',''),'9','')) END AS [SEVIYE]
FROM LG_030_EMUHACC H WITH(NOLOCK))H
LEFT OUTER JOIN
(SELECT L.ACCOUNTCODE,SUM(ROUND(L.DEBIT,6)) DEBIT,SUM(ROUND(L.CREDIT,6)) CREDIT,ROUND(SUM(ROUND(L.DEBIT,6)-ROUND(L.CREDIT,6)),6) BAKIYE,
((SELECT SUM(ROUND(DEBIT,6)) FROM LG_030_03_EMFLINE AS EMFLINE WHERE DATE_ BETWEEN '2019-01-01' AND '2019-07-31' AND ACCOUNTCODE=L.ACCOUNTCODE AND TRCODE IN (1,2,3,4,6,7)AND CANCELLED = 0 AND STATUS = 0 )-
(SELECT SUM(ROUND(CREDIT,6))FROM LG_030_03_EMFLINE AS EMFLINE WHERE DATE_ BETWEEN '2019-01-01' AND '2019-07-31' AND ACCOUNTCODE=L.ACCOUNTCODE AND TRCODE IN (1,2,3,4,6,7)AND CANCELLED = 0 AND STATUS = 0 )) K_BAKIYE
FROM
LG_030_03_EMFLINE L WHERE L.ACCOUNTCODE LIKE '%' AND L.DATE_ BETWEEN '2019-01-01' AND '2019-07-31'AND L.TRCODE IN (1,2,3,4,6,7)AND L.CANCELLED = 0 AND L.STATUS = 0
GROUP BY L.ACCOUNTCODE )L
ON H.HESAP_KODU=SUBSTRING(L.ACCOUNTCODE,1,LEN(H.HESAP_KODU))
GROUP BY H.ACTIVE,H.HESAP_KODU,H.HESAP_ADI,H.SEVIYE )TMP
WHERE (BORC>0 OR ALACAK>0) AND SEVIYE<=9
ORDER BY HESAP_KODU
Moderatör tarafında düzenlendi: