Forum

MSSQL Birden Fazla ...
 
Bildirimler
Hepsini Temizle

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

Müslüm SÖYLEMEZ
(@muslum-soylemez)
Üye

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 2 sene önce Müslüm SÖYLEMEZ tarafından düzenlendi
Alıntı
Konu başlatıcı Gönderildi : 05/11/2020 15:23

Mehmet Sucu
(@mehmetsucu)
Üye

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.
*****************************************************************

CevapAlıntı
Gönderildi : 05/11/2020 15:30

Müslüm SÖYLEMEZ
(@muslum-soylemez)
Üye

@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 2 sene önce Müslüm SÖYLEMEZ tarafından düzenlendi
CevapAlıntı
Konu başlatıcı Gönderildi : 05/11/2020 15:50

Mehmet Sucu
(@mehmetsucu)
Üye

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.
*****************************************************************

CevapAlıntı
Gönderildi : 06/11/2020 10:32

Müslüm SÖYLEMEZ
(@muslum-soylemez)
Üye

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

CevapAlıntı
Konu başlatıcı Gönderildi : 06/11/2020 11:25

Hakan Uzuner
(@hakanuzuner)
Kıdemli Üye 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.
*****************************************************************

CevapAlıntı
Gönderildi : 07/11/2020 11:36

Paylaş: