Forum

MSSQL Birden Fazla ...
 
Bildirimler
Hepsini Temizle

[Çözüldü] MSSQL Birden Fazla Sanal Tablo Birleştirme

6 Yazılar
3 Üyeler
4 Likes
1,687 Görüntüleme
Müslüm SÖYLEMEZ
(@muslum-soylemez)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Merhaba Arkadaşlar;
Öncelikle İlgilendiğiniz İçin Teşekkür Ederim. Benim Bir Sql İle Bir Veri Çağırmada Takıldığım Nokta Var. 
Her Zamanki Gibi Çözümü Burada Bulabileceğimi İnanıyorum.

Tablolarım;

SELECT * FROM IASINVSTOCK WHERE MATERIAL = 'HAS9741'                /*BUNDA LAZIM OLAN MATERIAL,AVAILSTOCK*/

SELECT * FROM IASMATX WHERE MATERIAL = 'HAS9741' AND IASMATX.TEXTTYPE = 'B'        /* BUNDA LAZIM OLAN STEXT*/

SELECT * FROM IASMATMOP WHERE MATERIAL = 'HAS9741'                        /*BUNDA LAZIM OLAN SAFETYST*/

SELECT * FROM IASSALITEM WHERE CVLKOD = 'HAS9741'                     /*BUNDA LAZIM OLAN AVAILQTY*/

 

 

Sorğulama Kodum;

SELECT IASINVSTOCK.MATERIAL, SUM(AVAILSTOCK) AS "STOK",IASMATX.STEXT,IASMATMOP.SAFETYST FROM IASINVSTOCK
LEFT OUTER JOIN IASMATX ON IASINVSTOCK.MATERIAL = IASMATX.MATERIAL
LEFT OUTER JOIN IASMATMOP ON IASMATX.MATERIAL = IASMATMOP.MATERIAL
LEFT OUTER JOIN IASMATBASIC ON IASMATMOP.MATERIAL = IASMATBASIC.MATERIAL
WHERE IASINVSTOCK.MATERIAL = 'HAS9741' AND IASMATX.TEXTTYPE = 'B'
GROUP BY IASINVSTOCK.MATERIAL,IASMATX.STEXT,IASMATMOP.SAFETYST

Sorğulama Kodum 2 ;
SELECT IASSALITEM.CVLKOD, SUM(AVAILQTY) AS "ACIK"
FROM IASSALITEM
WHERE DOCTYPE IN ('O1','O2')
AND ORDSTAT IN ('0','1')
AND ISDELETE = 0
GROUPBY IASSALITEM.CVLKOD

 

 

 

 

Üst Sorgum Doğru Sayıyı Veriyor Ama Altta Doğru Veriyor Ama Bir Tabloda Birleştirmem Lazım Bunu Nasıl Bir Yol İzlemem Gerekir.

İlginize Teşekkürler

 

 

Bu konu 3 yıl önce Müslüm SÖYLEMEZ tarafından düzenlendi
 
Gönderildi : 05/11/2020 15:23

(@mehmetsucu)
Gönderiler: 85
Estimable Member
 

Merhaba @muslum-soylemez

İlk sorgunda verdiğin şartlar ile ikinci de farklı. Tam olarak neyi almak istiyorsun burada? Resimlerini atabilir misin?

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 05/11/2020 15:30

Müslüm SÖYLEMEZ
(@muslum-soylemez)
Gönderiler: 7
Active Member
Konu başlatıcı
 

@mehmetsucu

Elimde 4 adet Tablo Bulunuyor. IASINVSTOCK, IASMATX , IASMATMOP, IASSALITEM 

Ortak Kolonları = IASINVSTOCK.MATERIAL , IASMATX .MATERIAL  , IASMATMOP.MATERIAL , IASSALITEM.CVLKOD

ÇEKMEK İSTEDİĞİM KOLONLAR;

1-) IASINVSTOCK TABLOSUNDAN  = MATERIAL VE  AVAILSTOCK
2-) IASMATX TABLOSUNDAN = STEXT
3-) IASMATMOP TABLOSUNDAN = SAFETYST
3-) IASSALITEM TABLOSUNDAN = AVAILQTY

TOPLAYARAK VERMESİNİ İSTEDİĞİM KOLONLAR;

1-) IASINVSTOCK TABLOSUNDAN AVAILSTOCK
2-) IASSALITEM TABLOSUNDAN AVAILQTY

AMACIM İSE STOKTA Kİ ÇUVAL STOĞUNU(AVAILSTOCK) BULUP AÇIKTA BEKLEYEN SİPARİŞ SAYISI(AVAILQTY) İLE AYNI TABLODA GÖSTERMEK BU KADAR 

Bu ileti 3 yıl önce Müslüm SÖYLEMEZ tarafından düzenlendi
 
Gönderildi : 05/11/2020 15:50

(@mehmetsucu)
Gönderiler: 85
Estimable Member
 

IASSALITEM tablonda CVLKOD alanı ya da farklı bir alan diğer tablolarınla eşleşiyorsa joinle men gerekiyor. Eşleşen alanın yok ise iç içe sorgu yazıp bir üst sorguda toplamlarını alman lazım.

Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 06/11/2020 10:32

Müslüm SÖYLEMEZ
(@muslum-soylemez)
Gönderiler: 7
Active Member
Konu başlatıcı
 

SELECT DISTINCT SK.MATERIAL, IASMATX.STEXT, IASMATMOP.SAFETYST ,IASMATBASIC.MATTYPE,
(SELECT SUM(AVAILSTOCK)
FROM IASINVSTOCK AS AA
WHERE AA.MATERIAL=SK.MATERIAL)AS STOK ,(SELECT SUM(AVAILQTY) FROM IASSALITEM WHERE DOCTYPE IN ('O1','O2')
AND ORDSTAT IN ('0','1')
AND ISDELETE = 0
AND IASSALITEM.CVLKOD=SK.MATERIAL)AS ACIK,(SELECT SUM(AVAILSTOCK) FROM IASINVSTOCK AS AA WHERE AA.MATERIAL=SK.MATERIAL)-ISNULL( ( SELECT SUM(AVAILQTY) FROM IASSALITEM WHERE DOCTYPE IN ('O1','O2')
AND ORDSTAT IN ('0','1')
AND ISDELETE = 0
AND IASSALITEM.CVLKOD=SK.MATERIAL),0) AS GEREKLI FROM IASINVSTOCK AS SK
LEFT OUTER JOIN IASMATX ON SK.MATERIAL = IASMATX.MATERIAL
LEFT OUTER JOIN IASMATMOP ON IASMATX.MATERIAL = IASMATMOP.MATERIAL
LEFT OUTER JOIN IASMATBASIC ON IASMATMOP.MATERIAL = IASMATBASIC.MATERIAL WHERE IASMATX.CLIENT = '00'
AND IASMATX.LANGU = 'T'
AND IASMATX.PLANT = '*'
AND IASMATX.TEXTTYPE = 'B'
AND IASMATBASIC.MATTYPE LIKE '%PACK'
INTO CUVALTABLE;

Bu şekilde İstediğim Sonucu Elde Ettim . Bilginize . İyi Çalışmalar

 
Gönderildi : 06/11/2020 11:25
Hakan Uzuner, Mehmet Sucu, Hakan Uzuner and 1 people reacted

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 32988
Illustrious Member Yönetici
 

Geri dönüş ve bilgi için teşekkürler.

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 07/11/2020 11:36

Paylaş: