![]() |
ERP Nedir? Enterprise Resource Planning nasıl çalışır? İş süreçleri ile ilgili tüm soru ve cevapları ERPNe.org'da.
Ülkemizde hızla gelişmekte olan ERP yazılım sektörümüzün, Yerli ve Yabancı ERP işlemlerinin tanıtımı ve kullanıcılarının buluşma noktası olması hedefiyle kurulan sitemize hoş geldiniz. Ülkemizdeki Ne.org konseptinde bir ilk olarak yayın hayatına başlayan ERPNe.org, Kurumsal Kaynak Planlaması yazılımlarını kullananların bilgi kaynağı/Portal olmak amacı ile kurulmuştur. Genellikle yurt dışında büyük üreticiler tarafından geliştirilen SQL, Delphi, ASP, CSharp gibi teknolojilerin anlatıldığı sitelerin kullandıkları (WhatisSQL, WhatisASP) (Ülkemizde Netsis Nedir, Mikro Nedir, SAP Nedir yada Logo Nedir gibi kullanıcı sorularına) Ne ve nedir konseptinde yeni bir açılım olmasını da hedefleyen ERPNe.ORG' un, ülkemizin uluslararası ERP sektörü içinde hak ettiği yeri almasında ve ERP ürünlerini kullananların bir araya gelerek Yerli ERP'nin gelişmesine katkı sağlayacakları önemli bir kilometre taşı olacağı düşüncesindeyiz. |
Iki tarih arasi bakiyeli cari ve stok hareketleri |
Yanıt Yaz ![]() |
Yazar | |
Merkez ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 20 Aralık 2011 Durum: Aktif Değil Puanlar: 0 |
![]() ![]() ![]() ![]() ![]() Gönderim Zamanı: 26 Mayıs 2012 Saat 12:30 |
Merhaba,
Forumda soracagim sorunun cevabini aradim ama bulamadim. Umarim tekrar ediyor olmam. Temel olarak yapmak istedigim sey stok ve cari modüllerdeki tarih aralikli icmal listelerini raporlastirmak. Benim tanimlayacagim iki tarih arasindaki ya da içinde bulundugumuz ayin stok ya da cari hareketleri görmek istiyorum. Bir view yazip bunu Smart Agent programinda düzenli gönderilen bir rapor haline dökmek istiyorum. View sonucu söyle bir sey olmali cari kod, cari isim, ilk tarih bakiye, iki tarih arasi toplam borç, iki tarih arasi toplam alacak, son tarih bakiye. ya da stok kodu, stok adi, ilk tarih bakiye, iki tarih arasi toplam giris, iki tarih arasi toplam çikis, son tarih bakiye. yardimci olabilecek birileri çikarsa sevinirim. |
|
![]() |
|
mbaykan ![]() Kidemli Üye ![]() ![]() Kayıt Tarihi: 06 Nisan 2007 Konum: izmir Durum: Aktif Değil Puanlar: 1181 |
![]() ![]() ![]() ![]() ![]() |
CREATE FUNCTION UFN_STOK_DONEM_OZET(@TRH1 DATETIME,@TRH2 DATETIME)
RETURNS TABLE RETURN ( WITH CTE1 AS ( SELECT STOK_KODU, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) DEVIR FROM TBLSTHAR (NOLOCK) WHERE STHAR_TARIH < @TRH1 AND STOK_KODU IN (SELECT DISTINCT STOK_KODU FROM TBLSTHAR WHERE STHAR_TARIH BETWEEN @TRH1 AND @TRH2) GROUP BY STOK_KODU ), CTE2 AS (SELECT STOK_KODU,SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR (NOLOCK) WHERE STHAR_TARIH BETWEEN @TRH1 AND @TRH2 GROUP BY STOK_KODU ) SELECT S2.STOK_KODU,B.STOK_ADI,ISNULL(DEVIR,0) DEVIR,GIRIS,CIKIS,ISNULL(DEVIR,0) + GIRIS - CIKIS AS KALAN FROM CTE2 S2 LEFT JOIN CTE1 S1 ON S1.STOK_KODU=S2.STOK_KODU LEFT JOIN TBLSTSABIT B ON S2.STOK_KODU=B.STOK_KODU ) CREATE FUNCTION UFN_CARI_DONEM_OZET(@TRH1 DATETIME,@TRH2 DATETIME) RETURNS TABLE RETURN ( WITH CTE1 AS ( SELECT CARI_KOD, SUM(BORC - ALACAK) BAKI1 FROM TBLCAHAR A (NOLOCK) WHERE TARIH < @TRH1 AND A.CARI_KOD IN (SELECT DISTINCT CARI_KOD FROM TBLCAHAR WHERE TARIH BETWEEN @TRH1 AND @TRH2) GROUP BY CARI_KOD ), CTE2 AS (SELECT CARI_KOD,SUM(BORC) BORC,SUM(ALACAK) ALACAK FROM TBLCAHAR (NOLOCK) WHERE TARIH BETWEEN @TRH1 AND @TRH2 GROUP BY CARI_KOD ) SELECT C2.CARI_KOD,B.CARI_ISIM,ISNULL(BAKI1,0) BAKI1, BORC, ALACAK, ISNULL(BAKI1,0) + BORC - ALACAK AS BAKIYE FROM CTE2 C2 LEFT JOIN CTE1 C1 ON C1.CARI_KOD=C2.CARI_KOD LEFT JOIN TBLCASABIT B ON C2.CARI_KOD=B.CARI_KOD ) Stok raporu için SELECT * FROM DBO.UFN_STOK_DONEM_OZET('2012-01-01','2012-01-31') Cari raporu için SELECT * FROM dbo.UFN_CARI_DONEM_OZET('2012-01-01','2012-01-31') |
|
Mehmet Baykan
|
|
![]() |
|
Merkez ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 20 Aralık 2011 Durum: Aktif Değil Puanlar: 0 |
![]() ![]() ![]() ![]() ![]() |
Tam da istedigim gibi bir sonuç verdi. Çok tesekkür ederim.
Ama yazdiginiz kod benim anlayabilecegimden daha karmasik. Ben söyle bir sey yazmistim. declare @fromdate date=convert(date,convert(varchar(7),getdate(),102)+'.01') declare @todate date=getdate()-1 select CARI_KOD,CARI_ISIM,C.ACIK1 AS TABELA_ADI, C.RAPOR_KODU1 AS RUT_KODU,GRUP_ISIM AS RUT_ADI, ISNULL((SELECT SUM(BORC)-SUM(ALACAK) FROM TBLCAHAR H WHERE H.TARIH<@fromdate AND C.CARI_KOD=H.CARI_KOD AND H.PROJE_KODU='1'),0) AS DEVIR, ISNULL((SELECT SUM(BORC) FROM TBLCAHAR H WHERE H.TARIH BETWEEN @FROMDATE AND @todate AND C.CARI_KOD=H.CARI_KOD AND H.PROJE_KODU='1'),0) AS BORC, ISNULL((SELECT SUM(ALACAK) FROM TBLCAHAR H WHERE H.TARIH BETWEEN @FROMDATE AND @todate AND C.CARI_KOD=H.CARI_KOD AND H.PROJE_KODU='1'),0) AS ALACAK, ISNULL((SELECT SUM(BORC)-SUM(ALACAK) FROM TBLCAHAR H WHERE H.TARIH<@todate AND C.CARI_KOD=H.CARI_KOD AND H.PROJE_KODU='1'),0) AS BAKIYE from TBLCASABIT C left outer JOIN TBLCARIKOD1 ON C.RAPOR_KODU1=TBLCARIKOD1.GRUP_KOD bu, görebileceginiz üzere sadece ay içi durumu getiriyor ve disaridan ek bir tarih girisi yapmaya gerek kalmiyor. bu da isimi görebilir ama tblcasabit'ten tblcahar'a gittigim için cari hareketi olmayan müsterileri de getiriyor. bunlarin sayilari da çok fazla. tblcahar'dan select yapsam her kolon için ayri kosullari nasil belirleyebilecegimi bulamadim. |
|
![]() |
|
mbaykan ![]() Kidemli Üye ![]() ![]() Kayıt Tarihi: 06 Nisan 2007 Konum: izmir Durum: Aktif Değil Puanlar: 1181 |
![]() ![]() ![]() ![]() ![]() |
yaptigim karmasik degil.
CTE.. ile sanal tablolar yapip bunlari sorgumda kullaniyorum. parametrik view olusturmak Sql'de kullanici tanimli fonksiyonlardan Table valued function (sonucu tablo olan fonksiyon)'la mümkün bu sorgunuzu daha güçlü yapar ve kullanimi bir tablo ya da view'dan farksizdir SELECT * FROM dbo.Fonksiyon(parametre1,parametre2, ...) sizin TBLCAHAR ile baslayip TBLCASABIT ve digerleri ile INNER JOIN yaptiginiz sorgunuzda istedeginiz döneme ait kayitlari göstermeniz tabii ki TBLCAHAR.CARI_KOD kolonuna göre GROUP BY'i da sorgunuza koyup BORC,ALACAK gibi kolonlari toplamaniz gerekir. Ben de sorgumda bunu yapiyorum. Sizin CASABIT ve diger talolardan almak istediginiz bilgiler için de yazidgimi fonksiyon su sekilde kullanilabilir select A.CARI_KOD,A.CARI_ISIM,C.ACIK1 AS TABELA_ADI, C.RAPOR_KODU1 AS RUT_KODU,GRUP_ISIM AS RUT_ADI, A.BAKI1 AS DEVIR, A.BORC, A.ALACAK, A.BAKIYE from dbo.UFN_CARI_DONEM_OZET('2012-01-01','2012-01-31') A INNER JOIN TBLCASABIT C ON C.CARI_KOD=A.CARI_KOD left outer JOIN TBLCARIKOD1 ON C.RAPOR_KODU1=TBLCARIKOD1.GRUP_KOD Düzenleyen mbaykan - 26 Mayıs 2012 Saat 22:44 |
|
Mehmet Baykan
|
|
![]() |
|
Merkez ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 20 Aralık 2011 Durum: Aktif Değil Puanlar: 0 |
![]() ![]() ![]() ![]() ![]() |
Benim seviyem icin karmasik icin oldugunu düsünmüstüm yazdiginiz kodun, ama biraz daha dikkatle inceleyince daha anlasilir hale geliyor. Tekrar ilginiz icin tesekkür ederim.
|
|
![]() |
|
abastas ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 20 Kasım 2008 Konum: Ankara Durum: Aktif Değil Puanlar: 8 |
![]() ![]() ![]() ![]() ![]() |
DBO.UFN_STOK_DONEM_OZET viewlardamidir acaba ben göremedim
tesekkürler |
|
![]() |
|
mbaykan ![]() Kidemli Üye ![]() ![]() Kayıt Tarihi: 06 Nisan 2007 Konum: izmir Durum: Aktif Değil Puanlar: 1181 |
![]() ![]() ![]() ![]() ![]() |
VERITABANI'niz > Programmability > Functions > Scalar valued Functions
altindadir. |
|
Mehmet Baykan
|
|
![]() |
|
abastas ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 20 Kasım 2008 Konum: Ankara Durum: Aktif Değil Puanlar: 8 |
![]() ![]() ![]() ![]() ![]() |
tesekkürler bu verilere depo kodunu grup kodunu ve birim fiyatini nasil ekleyebilirim
|
|
![]() |
|
mbaykan ![]() Kidemli Üye ![]() ![]() Kayıt Tarihi: 06 Nisan 2007 Konum: izmir Durum: Aktif Değil Puanlar: 1181 |
![]() ![]() ![]() ![]() ![]() |
birim fiyat'tan hangi fiyati kasdediyorsunuz. Stok kartindaki alis veya satis fiyatlarindan biri ise kolay
ben satis fiyat-1 'e göre fonksiyonu degistirdim ALTER FUNCTION UFN_STOK_DONEM_OZET(@TRH1 DATETIME,@TRH2 DATETIME) RETURNS TABLE RETURN ( WITH CTE1 AS ( SELECT STOK_KODU, DEPO_KODU DEPO,SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE -STHAR_GCMIK END) DEVIR FROM TBLSTHAR (NOLOCK) WHERE STHAR_TARIH < @TRH1 AND STOK_KODU IN (SELECT DISTINCT STOK_KODU FROM TBLSTHAR WHERE STHAR_TARIH BETWEEN @TRH1 AND @TRH2) GROUP BY STOK_KODU,DEPO_KODU ), CTE2 AS (SELECT STOK_KODU, DEPO_KODU DEPO, SUM(CASE WHEN STHAR_GCKOD='G' THEN STHAR_GCMIK ELSE 0 END) GIRIS, SUM(CASE WHEN STHAR_GCKOD='C' THEN STHAR_GCMIK ELSE 0 END) CIKIS FROM TBLSTHAR (NOLOCK) WHERE STHAR_TARIH BETWEEN @TRH1 AND @TRH2 GROUP BY STOK_KODU,DEPO_KODU ) SELECT ISNULL(B.GRUP_KODU,C.GRUP_KODU) GRUP_KODU,ISNULL(S2.STOK_KODU,S1.STOK_KODU) KOD,ISNULL(B.STOK_ADI,C.STOK_ADI) STOK_ADI,ISNULL(S2.DEPO,S1.DEPO) DEPO,B.SATIS_FIAT1 BIRIM_FIYAT, ISNULL(DEVIR,0) DEVIR,GIRIS,CIKIS,ISNULL(DEVIR,0) + GIRIS - CIKIS AS KALAN FROM CTE2 S2 FULL JOIN CTE1 S1 ON S1.STOK_KODU=S2.STOK_KODU AND S1.DEPO=S2.DEPO LEFT JOIN TBLSTSABIT B ON S2.STOK_KODU=B.STOK_KODU LEFT JOIN TBLSTSABIT C ON S1.STOK_KODU=C.STOK_KODU ) Düzenleyen mbaykan - 04 Mayıs 2013 Saat 08:12 |
|
Mehmet Baykan
|
|
![]() |
Yanıt Yaz ![]() |
|
Tweet
|
Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |