birden fazla view'i tek bir viewe baglama
Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: ERP Temel Paketler
Forum Adı: ERP Rapor Modülü
Forum Tanımlaması: Rapor Modülü İle İlgili Bilgiler ve Sorular İçin...
URL: http://www.erpne.org/forum_posts.asp?TID=1689
Tarih: 21 Ağustos 2025 Saat 16:40 Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com
Konu: birden fazla view'i tek bir viewe baglama
Mesajı Yazan: jung
Konu: birden fazla view'i tek bir viewe baglama
Mesaj Tarihi: 05 Ağustos 2009 Saat 13:10
Merhabalar ,
Stok hareketleri ile ilgili 5 tane view kaydettim.
1. view de stoklarin günlük üretim miktarlari
2. view de stoklarin günlük hurda depoya transferleri
3. view de stoklarin günlük tamir depoya transferleri.
4...
5...
tüm bu vieweri yeni bir viewin altina koydum ve raporlamam gereken sütunlari seçtim
viewler arasinda sadece stok kodu bölümlerini iliskilendirerek raporu çalistirdim ama rapor bos çikiyor .
Her bir view kendi basinayken çalisiyor ancak hepsini bir baska viewle birlestirdigimde view çalismiyor.
bir baska sütunu dahami iliskilendirmem lazim
Almaya çalistigim rapor su sekilde
Iki tarih araliginda;
stok kodu stok adi üretim miktari hurdaya giden tamire giden tamirden gelen tamirden hurdaya giden
basliklarin tek satirda hesaplanmasi gerekmekte
baska bir yol varmi önerilere açigim
:)
|
Cevaplar:
Mesajı Yazan: jung
Mesaj Tarihi: 05 Ağustos 2009 Saat 13:47
1. view
SELECT TOP (100) PERCENT dbo.TBLSTHAR.STOK_KODU AS STOKKODU, SUM(dbo.TBLSTHAR.STHAR_GCMIK) AS GIRCIKMIK, dbo.TBLSTHAR.STHAR_TARIH AS TARIH, dbo.TBLSTHAR.STHAR_ACIKLAMA AS ACIKLAMA, COUNT(*) AS Expr2, dbo.TBLSTSABIT.GRUP_KODU, dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, dbo.TBLSTSABIT.KOD_3, dbo.TBLSTSABIT.KOD_4, dbo.TBLSTSABIT.KOD_5, dbo.TBLSTHAR.DEPO_KODU AS Expr1, dbo.TBLSTHAR.EKALAN AS ARIZA_KODU, dbo.TBLSTHAR.EKALAN1 AS PRES_NO, dbo.TBLSTHAR.STHAR_HTUR, dbo.TBLSTHAR.STHAR_GCKOD FROM dbo.TBLSTHAR INNER JOIN dbo.TBLSTSABIT ON dbo.TBLSTHAR.STOK_KODU = dbo.TBLSTSABIT.STOK_KODU GROUP BY dbo.TBLSTHAR.STOK_KODU, dbo.TBLSTHAR.STHAR_TARIH, dbo.TBLSTHAR.STHAR_ACIKLAMA, dbo.TBLSTSABIT.GRUP_KODU, dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, dbo.TBLSTSABIT.KOD_3, dbo.TBLSTSABIT.KOD_4, dbo.TBLSTSABIT.KOD_5, dbo.TBLSTHAR.DEPO_KODU, dbo.TBLSTHAR.EKALAN1, dbo.TBLSTHAR.EKALAN, dbo.TBLSTHAR.STHAR_HTUR, dbo.TBLSTHAR.STHAR_GCKOD HAVING (dbo.TBLSTHAR.DEPO_KODU = 30) AND (dbo.TBLSTHAR.STHAR_ACIKLAMA = 'Uretim') ORDER BY dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, STOKKODU, ACIKLAMA
|
Mesajı Yazan: Conari
Mesaj Tarihi: 05 Ağustos 2009 Saat 13:47
viewleri incelemek lazim
------------- Netsisden vazgeçemiyorum. Beni engelliyor..
|
Mesajı Yazan: jung
Mesaj Tarihi: 05 Ağustos 2009 Saat 13:48
2. view
SELECT TOP (100) PERCENT dbo.TBLSTHAR.STOK_KODU AS STOKKODU, SUM(dbo.TBLSTHAR.STHAR_GCMIK) AS GIRCIKMIK, dbo.TBLSTHAR.STHAR_TARIH AS TARIH, dbo.TBLSTHAR.STHAR_ACIKLAMA AS ACIKLAMA, COUNT(*) AS Expr2, dbo.TBLSTSABIT.GRUP_KODU, dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, dbo.TBLSTSABIT.KOD_3, dbo.TBLSTSABIT.KOD_4, dbo.TBLSTSABIT.KOD_5, dbo.TBLSTHAR.DEPO_KODU AS Expr1, dbo.TBLSTHAR.EKALAN AS ARIZA_KODU, dbo.TBLSTHAR.EKALAN1 AS PRES_NO, dbo.TBLSTHAR.STHAR_HTUR, dbo.TBLSTHAR.STHAR_GCKOD FROM dbo.TBLSTHAR INNER JOIN dbo.TBLSTSABIT ON dbo.TBLSTHAR.STOK_KODU = dbo.TBLSTSABIT.STOK_KODU GROUP BY dbo.TBLSTHAR.STOK_KODU, dbo.TBLSTHAR.STHAR_TARIH, dbo.TBLSTHAR.STHAR_ACIKLAMA, dbo.TBLSTSABIT.GRUP_KODU, dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, dbo.TBLSTSABIT.KOD_3, dbo.TBLSTSABIT.KOD_4, dbo.TBLSTSABIT.KOD_5, dbo.TBLSTHAR.DEPO_KODU, dbo.TBLSTHAR.EKALAN1, dbo.TBLSTHAR.EKALAN, dbo.TBLSTHAR.STHAR_HTUR, dbo.TBLSTHAR.STHAR_GCKOD HAVING (dbo.TBLSTHAR.DEPO_KODU = 30) AND (dbo.TBLSTHAR.STHAR_ACIKLAMA = '30-50') ORDER BY dbo.TBLSTSABIT.KOD_1, dbo.TBLSTSABIT.KOD_2, STOKKODU, ACIKLAMA
|
Mesajı Yazan: jung
Mesaj Tarihi: 05 Ağustos 2009 Saat 13:50
diger viewler bu sekilde sadece STHAR_ACIKLAMA'nin kisiti degisiyor.
|
Mesajı Yazan: mbaykan
Mesaj Tarihi: 05 Ağustos 2009 Saat 16:58
Ben view mantigini anlatayim siz view'lari revize dersiniz.
önce tüm view'lari group by yapmadan tek bir view'a toplayin. örnegin
CREATE VIEW MY_VIEW AS
SELECT sthar_tarih as tarih,A.STOK_KODU,B.STOK_ADI,STHAR_GCMIK URETIM,
0 hurda ,0 tamir1,0 tamir2,0 hurda2
FROM TBLSTHAR A,TBLSTSABIT B
WHERE sthar_tarih,A.STOK_KODU=B.STOK_KODU AND STHAR_GCKOD='G' AND STHAR_ACIKLAMA='Uretim' --(üretim için kullandiginiz kosul)
UNION ALL SELECT STHAR_TARIH,A.STOK_KODU,B.STOK_ADI,0,STHAR_GCMIK,0,0,0
SELECT FROM TBLSTHAR A,TBLSTSABIT B
WHERE A.STOK_KODU=B.STOK_KODU AND STHAR_GCKOD='C' AND STHAR_ACIKLAMA='30-50' --(Hurda için kosullar)
UNION ALL
SELECT STHAR_TARIH,A.STOK_KODU,B.STOK_ADI,0,0,STHAR_GCMIK,0,0
SELECT FROM TBLSTHAR A,TBLSTSABIT B
WHERE A.STOK_KODU=B.STOK_KODU AND STHAR_GCKOD='C' AND STHAR_ACIKLAMA='' --(Ariza için kosuular)
benzer sekilde diger 2 bölüm içinde bu view!i uzatirsak
Artik son sorguyu söyle yazariz
SELECT TARIH,STOK_KODU,STOK_ADI,SUM(URETIM),SUM(HURDA), ...
FROM MY_VIEW
GROUP BY STOK_KODU,STOK_ADI
WHERE TARIH BETWEEN '2009-07-01' AND '2009-07-31'
seklinde raporu alabilirz.
stok_karti ve hareketlerdeki diger sahalari view'a eklemedim. eklenebilir, ya da gerekmeyebilir.
Kolay gelsin
------------- Mehmet Baykan
|
|