Sayfayı Yazdır | Pencereyi Kapat

Rapor Yardim

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=2057
Tarih: 22 Ağustos 2025 Saat 12:16
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: Rapor Yardim
Mesajı Yazan: social
Konu: Rapor Yardim
Mesaj Tarihi: 14 Nisan 2010 Saat 09:21
SELECT DISTINCT
                      dbo.TBLCAHAR.CARI_KOD AS KOD, dbo.TBLCASABIT.CARI_ISIM, dbo.TBLCASABIT.CARI_IL, dbo.TBLCASABIT.GRUP_KODU,
                      dbo.TBLCASABIT.RAPOR_KODU1, dbo.TBLCASABIT.RAPOR_KODU2, dbo.TBLCASABIT.RAPOR_KODU3, dbo.TBLCASABIT.RAPOR_KODU4,
                      dbo.TBLCASABIT.RAPOR_KODU5, dbo.TBLCASABIT.CARI_ILCE, dbo.TBLCASABIT.POSTAKODU, dbo.TBLCASABIT.PLASIYER_KODU,
                      (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN CONVERT(DATETIME, '2009-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2009-10-31 00:00:00',
                      102) THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS KALAN_2009, (CASE WHEN (TBLCAHAR.VADE_TARIHI > GETDATE())
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS VADESI_GELMEMIS, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2009-11-01 00:00:00', 102) AND CONVERT(DATETIME, '2009-11-30 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS KASIM09_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2009-12-01 00:00:00', 102) AND CONVERT(DATETIME, '2009-12-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS ARALIK09_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-01-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS OCAK_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-02-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-02-28 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS SUBAT_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-03-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-03-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS MART_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-04-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-04-30 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS NISAN_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-05-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-05-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS MAYIS_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-06-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-06-30 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS HAZIRAN_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS TEMMUZ_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-08-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-08-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS AGUSTOS_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-09-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-09-30 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS EYLUL_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-10-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-10-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS EKIM_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-11-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-11-30 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS KASIM_KALAN, (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-12-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-12-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS ARALIK_KALAN
FROM         dbo.TBLCASABIT INNER JOIN
                      dbo.TBLCAHAR ON dbo.TBLCASABIT.CARI_KOD = dbo.TBLCAHAR.CARI_KOD
GROUP BY dbo.TBLCAHAR.CARI_KOD, dbo.TBLCASABIT.CARI_ISIM, dbo.TBLCAHAR.ALACAK, dbo.TBLCAHAR.BORC, dbo.TBLCAHAR.VADE_TARIHI,
                      dbo.TBLCASABIT.CARI_IL, dbo.TBLCASABIT.GRUP_KODU, dbo.TBLCASABIT.RAPOR_KODU1, dbo.TBLCASABIT.RAPOR_KODU2,
                      dbo.TBLCASABIT.RAPOR_KODU3, dbo.TBLCASABIT.RAPOR_KODU4, dbo.TBLCASABIT.RAPOR_KODU5, dbo.TBLCASABIT.CARI_ILCE,
                      dbo.TBLCASABIT.POSTAKODU, dbo.TBLCASABIT.PLASIYER_KODU
HAVING      (dbo.TBLCAHAR.BORC > 0)
 
Arkadaslar yukaridaki gibi bir raporum var ben en sonuna 2 sunu eklemek istiyorum ama istedigimi beceremedim
 
simdi
 
(CASE WHEN TBLCAHAR.TARIH BETWEEN
                      CONVERT(DATETIME, '2010-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-03-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS 3_Aylik (bunu genel borç alacak raporundaki gibi versin istiyorum)
 
ya da
asagidaki gibi bir kod denedim ama buda olmuyor 
 
SUM(CASE WHEN A.BORC>0 THEN A.BORC ELSE 0 END) - SUM(CASE WHEN A.ALACAK>0 THEN A.ALACAK ELSE 0 END)
FROM
TBLCAHAR A JOIN TBLCASABIT B ON (A.CARI_KOD=B.CARI_KOD) 
 gibi birsey yapmam lazim ama kapatilmis tutar kismina haraket attigindan alacak kismini gormuyor ve çikarma isleminde alacak kismini 0 olarak goruyor 
 
Arkadaslar genel borç alacak kismindaki gibi ilk 3 aylik borç-alacak bakiyeyi bana versin istiyorum ama bu sekilde olmuyor tblborc-tblalacak da denedim yine olmadi.Kapatilmis tutar da sanirim tarih kisiti verilemiyor
bana sonulça adamin 3 aylik toplam borç haraketi 1000 tl diyelim alacak toplamida 700 tl diyelim,ama 4.aydada alacak haraketi varsa onlarida duserek veriyor
ozel hesap kapatma kullaniyoruz
birde ilk 3 ayliktan sonra 4-12 ay borç ve alacak haraketlerinide ayri bir sutuna yazdirmak istiyorum
bu konuda yardimlarinizi bekliyorum
tesekkurler
 



Cevaplar:
Mesajı Yazan: Conari
Mesaj Tarihi: 14 Nisan 2010 Saat 12:04
alacak tutar diye birsey yok.
 
(CASE WHEN TBLCAHAR.TARIH BETWEEN
                      CONVERT(DATETIME, '2010-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-03-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik
ama söyle yap;
(CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik
vermesi lazim


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


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 12:56
hocam tblcahar.alacak kisminda sorun var oda kapatilmis_tutar dan kaynaklaniyor yani alacak kismini sifir olarak goruyor view
1000 borç 500 alacak var mart sonu itibariyle raporun bana 500 u vermesi gerekiyor ama rapor bana hala 1000 veriyor
borç-kapatilmis_tutar dedigimde ise nisan ayina ait kapatma yapildiysa onuda kapatilmis tutara dahil ediyor


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 14:36
kodda hata var hocam unable to parse query text hatasi veriyor


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 14:51
hocam sorunu buldum aslinda sizin verdiginizde benim verdigimde çalisiyor ama having tblcahar.borc <0 kisiti isimi bozuyor kisiti kaldirinca bu sefer eksi degerler cikiyor ve view sapitiyor


Mesajı Yazan: Conari
Mesaj Tarihi: 14 Nisan 2010 Saat 15:43
O ZAMAN SUBQUERY EKLE
 
(SELECT (CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) FROM TBLCAHAR TCH WHERE TCH.CARI_KOD=TBLCAHAR.CARI_KOD )AS 3_Aylik


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


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 16:04
subquery returned more than 1 value.this is not permitted when the subquesy follows  =,!=,<,<=,>,>=  or when the subquery is used as an expression
gibi bir hata dondurdu hocam subqueryde bu ifadelere izin verilmiyormu


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 16:23
distinct koyunca çalisti ama yine olmadi kapatilmis_tutarlar -  deger olarak gorundugunden end altdaki borç >0 hala subquery i etkiliyor ve hala sonuç istedigim gibi çikmiyor
 
ornek vermek gerekirse adamin ocak subat mart itibariyle 1800 tl borcu var ve mart sonu itibariyle 450 tl odeme yapmis 1367 çikmasi gerekirken hala 1800 çikiyor cunku yapilan 450 tl lik odeme kapatilmis_tutar hanesinde eksi 100 -150 -100 -100 seklinde yaziyor


Mesajı Yazan: Conari
Mesaj Tarihi: 14 Nisan 2010 Saat 16:33
sum basta olmaliydi.
 
(SELECT sum (CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN (TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) )FROM TBLCAHAR TCH WHERE TCH.CARI_KOD=TBLCAHAR.CARI_KOD )AS 3_Aylik


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


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 17:08
subquery returned more than 1 value.this is not permitted when the subquesy follows  =,!=,<,<=,>,>=  or when the subquery is used as an expression
 hatasini donduruyor sum basta olunca hocam distinct kaldirdim sum koydum


Mesajı Yazan: Conari
Mesaj Tarihi: 14 Nisan 2010 Saat 17:56
sub querye group by ekle.

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


Mesajı Yazan: social
Mesaj Tarihi: 14 Nisan 2010 Saat 18:07
olmadi hocam epey ugrasiyorsunuz ama olmuyor group by da ekledim cannot use an aggregate or a subquery in an expression used for the group by list of a Group BY clouse hatasi veriyor


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 14 Nisan 2010 Saat 19:23
Orjinalini yazan: Conari Conari Yazdı:

alacak tutar diye birsey yok.
 
(CASE WHEN TBLCAHAR.TARIH BETWEEN
                      CONVERT(DATETIME, '2010-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-03-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik
ama söyle yap;
(CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik
vermesi lazim
 
pardon bu kodun sorunu nedir?
 
(CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik


Mesajı Yazan: social
Mesaj Tarihi: 15 Nisan 2010 Saat 08:21
(CASE WHEN month (TBLCAHAR.TARIH )<=3 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.ALACAK) END) AS 3_Aylik
merhaba kodda bir sorun yok en ustdeki rapora dikkat ettiyseniz having ile borç 0 dan buyuk ise denmis o yuzden alacak kismini 0 olarak geçmektedir çunku alacaklar özel hesap kapatma kullanildigi için -100 -150 gibi degerler olarak yaziliyor database kismina


Mesajı Yazan: kıl_ark
Mesaj Tarihi: 15 Nisan 2010 Saat 09:53
yukaridaki raporu inceledim. vade bazinda kapatilmayan harketleri tek tek gösteriyor dolayisiyle borç alacak raporundaki gibi bir bakiyenin olusmasi mümkün degil. bence having'i kaldirin guruplamadan da  dbo.TBLCAHAR.ALACAK, dbo.TBLCAHAR.BORC, dbo.TBLCAHAR.VADE_TARIHI kisimlarini kaldirin yukaridaki cümle tam çalisir fakat bu seferde vade bazinda kapatilmayan harketleri tek tek degil toplam olarak gösterir. ben bir degisiklik daha yaparak deneme yaptim ve çalisti (tüm SUM lari parantez disina tasidim) ve yeni deneme daha yaptim  örn: (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS TEMMUZ_KALAN
 
cümlesini sum(CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-31 00:00:00', 102) and where (dbo.TBLCAHAR.BORC > 0)
                      THEN (TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS TEMMUZ_KALAN
seklinde degistirdim


Mesajı Yazan: Conari
Mesaj Tarihi: 15 Nisan 2010 Saat 11:37

scripti tam incelememistim. sadece bakiye olarak düsünmüstüm.

having kismini kaldirip. case bloklarina when borc >0 kisitini ekle


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


Mesajı Yazan: social
Mesaj Tarihi: 15 Nisan 2010 Saat 15:43
Conari hocam when borc >0 i case bloklarina nasil eklemem gerekiyor çözemedim


Mesajı Yazan: Conari
Mesaj Tarihi: 15 Nisan 2010 Saat 15:46
(CASE WHEN TBLCAHAR.VADE_TARIHI
BETWEEN CONVERT(DATETIME, '2009-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2009-10-31 00:00:00',102) and TBLCAHAR.BORC > 0 THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS KALAN_2009


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


Mesajı Yazan: social
Mesaj Tarihi: 15 Nisan 2010 Saat 15:52
Orjinalini yazan: kil_ark kil_ark Yazdı:

yukaridaki raporu inceledim. vade bazinda kapatilmayan harketleri tek tek gösteriyor dolayisiyle borç alacak raporundaki gibi bir bakiyenin olusmasi mümkün degil. bence having'i kaldirin guruplamadan da  dbo.TBLCAHAR.ALACAK, dbo.TBLCAHAR.BORC, dbo.TBLCAHAR.VADE_TARIHI kisimlarini kaldirin yukaridaki cümle tam çalisir fakat bu seferde vade bazinda kapatilmayan harketleri tek tek degil toplam olarak gösterir. ben bir degisiklik daha yaparak deneme yaptim ve çalisti (tüm SUM lari parantez disina tasidim) ve yeni deneme daha yaptim  örn: (CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-31 00:00:00', 102)
                      THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS TEMMUZ_KALAN
 
cümlesini sum(CASE WHEN TBLCAHAR.VADE_TARIHI BETWEEN
                      CONVERT(DATETIME, '2010-07-01 00:00:00', 102) AND CONVERT(DATETIME, '2010-07-31 00:00:00', 102) and where (dbo.TBLCAHAR.BORC > 0)
                      THEN (TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS TEMMUZ_KALAN
seklinde degistirdim
Merhaba yardiminiz için tesekkurler ama
Error in list of function arguments: 'WHERE' not recognized.
Error in list of function arguments: ')' not recognized.
Unable to parse query text.
 
sizin dediginiz gibi yazdigimda yukaridaki hatayi veriyor


Mesajı Yazan: social
Mesaj Tarihi: 15 Nisan 2010 Saat 16:23
    (CASE WHEN TBLCAHAR.BORC > 0 AND TBLCAHAR.VADE_TARIHI BETWEEN CONVERT(DATETIME, '2010-12-01 00:00:00', 102) AND
                      CONVERT(DATETIME, '2010-12-31 00:00:00', 102) THEN SUM(TBLCAHAR.BORC - TBLCAHAR.KAPATILMIS_TUTAR) END) AS ARALIK_KALAN
TAMAMDIR ARKADASLAR BU SEKILDE ÇALISTI
YARDIMCI OLAN HERKESTEN ALLAH RAZI OLSUN
TESEKKURLER



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