Sayfayı Yazdır | Pencereyi Kapat

SQL stok aybasi ve aysonu bakiyeleri

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


Konu: SQL stok aybasi ve aysonu bakiyeleri
Mesajı Yazan: jung
Konu: SQL stok aybasi ve aysonu bakiyeleri
Mesaj Tarihi: 06 Şubat 2012 Saat 16:08
merhaba arkadaslar,
her ayin açilis stogu ve kapanis stogunun oldugu bir view yapmam lazim. bir türlü ayni viewde her bir ayi gösterme mantigini çözemedim.



Cevaplar:
Mesajı Yazan: mbaykan
Mesaj Tarihi: 06 Şubat 2012 Saat 16:47
tek view'da 12 ay gösterilecek mi? Tutarlar var mi?
Subat sonu bakiye = Mart basi devir 'dir kolonlar tekrar mi edecek?
ya da ay bilgisi verilip; bu (verilen) ay'a devreden stok, dönem için Giren-çikan ve sonraki
aya devreden (yani ay sonu stok) kolonlari mi olacak


-------------
Mehmet Baykan


Mesajı Yazan: jung
Mesaj Tarihi: 06 Şubat 2012 Saat 17:31
mümkünse tek viewde ve tutarsiz olacak.
kolonlarda stok_kodu,stok_adi,ay, aybasi miktar, aysonu kapanis miktari 
olacak.
 


Mesajı Yazan: mbaykan
Mesaj Tarihi: 07 Şubat 2012 Saat 23:14
- 2011 yili yerine istediginiz yili yazip çalistirin.
- View'a çevirdiginizde ORDER BY satiri iptal edilmeli
- 1 ocak tarihli devir hareketleri Ocak basi stogunu yanlis gösterebilir, o sorunu da asmak mümkün...


WITH TRH AS (SELECT CONVERT(DATETIME,'2011-' + CONVERT(VARCHAR(2),AY.MNTH) + '-1') BASLA,
DATEADD(d,-1,DATEADD(m,1,CONVERT(DATETIME,'2011-' + CONVERT(VARCHAR(2),AY.MNTH) + '-1'))) SON
FROM
(SELECT 1 MNTH
UNION SELECT 2
UNION SELECT 3
UNION SELECT 4
UNION SELECT 5
UNION SELECT 6
UNION SELECT 7
UNION SELECT 8
UNION SELECT 9
UNION SELECT 10
UNION SELECT 11
UNION SELECT 12 ) AY)

SELECT A.STOK_KODU,B.STOK_ADI,CONVERT(VARCHAR(7),BASLA,102) DONEM,SUM(CASE WHEN STHAR_TARIH >= TRH.BASLA THEN 0 ELSE
CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END END) AYBASI_STK,
SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) AYSONU_STK
FROM TBLSTHAR A,TRH,TBLSTSABIT B
WHERE A.STOK_KODU=B.STOK_KODU AND STHAR_TARIH<= TRH.SON
GROUP BY A.STOK_KODU,B.STOK_ADI,CONVERT(VARCHAR(7),BASLA,102)
ORDER BY A.STOK_KODU,DONEM


-------------
Mehmet Baykan


Mesajı Yazan: jung
Mesaj Tarihi: 08 Şubat 2012 Saat 09:32

çok tesekkür ederim .

söylediginiz gibi 1 ocak tarihli devir hareketleri Ocak basi stogunu hep sifir gösteriyor.
bunun için nasil bir çözüm öneririsiniz? 

 



Mesajı Yazan: mbaykan
Mesaj Tarihi: 08 Şubat 2012 Saat 12:45
WITH AYLAR (AY) AS
    (SELECT 1
    UNION ALL SELECT AY + 1 FROM AYLAR WHERE AY < 12
    ),
TRH (BASLA, SON) AS
    (SELECT CONVERT(DATETIME,'2011-' + CONVERT(VARCHAR(2),AY) + '-1') BASLA,
    DATEADD(d,-1,DATEADD(m,1,CONVERT(DATETIME,'2011-' + CONVERT(VARCHAR(2),AY) + '-1'))) SON
    FROM AYLAR),
STOKHAR AS (
SELECT * FROM (SELECT STOK_KODU,STHAR_TARIH,STHAR_GCKOD,STHAR_GCMIK FROM TBLSTHAR
WHERE NOT (STHAR_HTUR='A' AND MONTH(STHAR_TARIH)=1 AND DAY(STHAR_TARIH)=1)
UNION ALL
SELECT STOK_KODU,DATEADD(d,-1,STHAR_TARIH),STHAR_GCKOD,STHAR_GCMIK FROM TBLSTHAR
WHERE STHAR_HTUR='A' AND MONTH(STHAR_TARIH)=1 AND DAY(STHAR_TARIH)=1
) SS
)

SELECT A.STOK_KODU,B.STOK_ADI,CONVERT(VARCHAR(7),BASLA,102) DONEM,SUM(CASE WHEN STHAR_TARIH >= TRH.BASLA THEN 0 ELSE
CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END END) AYBASI_STK,
SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) AYSONU_STK
FROM STOKHAR A,TRH,TBLSTSABIT B
WHERE A.STOK_KODU=B.STOK_KODU AND STHAR_TARIH<= TRH.SON
GROUP BY A.STOK_KODU,B.STOK_ADI,CONVERT(VARCHAR(7),BASLA,102)
ORDER BY A.STOK_KODU,DONEM 

-------------
Mehmet Baykan


Mesajı Yazan: jung
Mesaj Tarihi: 05 Haziran 2012 Saat 17:05
merhaba arkadaslar sabah tan öglene kadar dogru çalisan asagidaki view ögleden sonra sadece ocak ayini göstermeye basladi.  sorun nerede veya nedendir?
 
 
 
WITH TRH AS (SELECT     CONVERT(DATETIME, '2012-' + CONVERT(VARCHAR(2), MNTH) + '-1') AS BASLA, DATEADD(d, - 1, DATEADD(m, 1, CONVERT(DATETIME,
                                                       '2012-' + CONVERT(VARCHAR(2), MNTH) + '-1'))) AS SON
                                FROM         (SELECT     1 AS MNTH
                                                       UNION
                                                       SELECT     2 AS Expr1
                                                       UNION
                                                       SELECT     3 AS Expr1
                                                       UNION
                                                       SELECT     4 AS Expr1
                                                       UNION
                                                       SELECT     5 AS Expr1
                                                       UNION
                                                       SELECT     6 AS Expr1
                                                       UNION
                                                       SELECT     7 AS Expr1
                                                       UNION
                                                       SELECT     8 AS Expr1
                                                       UNION
                                                       SELECT     9 AS Expr1
                                                       UNION
                                                       SELECT     10 AS Expr1
                                                       UNION
                                                       SELECT     11 AS Expr1
                                                       UNION
                                                       SELECT     12 AS Expr1) AS AY)
    SELECT     TOP (100) PERCENT A.STOK_KODU, B.STOK_ADI, CONVERT(VARCHAR(7), TRH_1.BASLA, 102) AS DONEM,
                            SUM(CASE WHEN STHAR_TARIH >= TRH_1.BASLA THEN 0 ELSE CASE WHEN STHAR_GCKOD = 'G' THEN STHAR_GCMIK ELSE - STHAR_GCMIK END END)
                            AS AYBASI_STK, SUM(CASE WHEN STHAR_GCKOD = 'G' THEN STHAR_GCMIK ELSE - STHAR_GCMIK END) AS AYSONU_STK, MONTH(TRH_1.BASLA) AS AY
     FROM         dbo.TBLSTHAR AS A INNER JOIN
                            dbo.TBLSTSABIT AS B ON A.STOK_KODU = B.STOK_KODU INNER JOIN
                            TRH AS TRH_1 ON A.STHAR_TARIH <= TRH_1.SON
     GROUP BY A.STOK_KODU, B.STOK_ADI, CONVERT(VARCHAR(7), TRH_1.BASLA, 102), A.DEPO_KODU, MONTH(TRH_1.BASLA)
     HAVING      (A.DEPO_KODU = 10) AND (MONTH(TRH_1.BASLA) <= MONTH(GETDATE()))
     ORDER BY A.STOK_KODU, DONEM


Mesajı Yazan: jung
Mesaj Tarihi: 07 Haziran 2012 Saat 10:47
sql servera baglanirken windows authentication modunda baglaninca bu sorun olustu. Sql server authentication modunda sa sifresi ile girince normale döndü :)
ama  bugüne kadar hep windows authentication ile oturum açiyordum sorun olmuyordu.


Mesajı Yazan: bybarone
Mesaj Tarihi: 07 Haziran 2012 Saat 11:03
eger view'i sa ile olusturdu iseniz ondan yapabilir...

-------------
Iyi çalismalar.

Barancan GENÇ

barancan.genc@hotmail.com


Mesajı Yazan: jung
Mesaj Tarihi: 07 Haziran 2012 Saat 11:04
bilgilendirmeniz için tesekkür ederim.



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