KarmaŞik Select İfadesİ

Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Merhaba arkadaşlar ekdeki dosyada (JPG) ifade etmeye çalıştığım sonucu çevirecek Query i yazabilmeye ihtiyacım var.

WEB üzerinde bir çok araştırma yaptım ama maalesef konuyu çözebilecek şekilde doyurucu bilgiye rastlayamadığımdan, sonunda konuyu çok sade bir şekilde açıklama ihtiyacı hissettim.Ve üşenmeden EXCEL de manuel olarak verileri ve istediğim sonuçları hücrelere elle tek tek girip sizlerin ilgisine sundum.

NOT : LG_001_01_STLINE Table sindeki TRCODE Field ındaki değerlerin anlamları

1 ALIM Hareketi
8 Satış Hareketi
3 Satışdan İAde Hareketidir.

Her Tablenin kendi ID si Logicalref Field ında tutulmaktadır.

Stok kartlarının Logicalrefi , Hareket tablosundaki STOCKREF alanına eşittir.JOIN dir.

Yani LG_001_ITEMS.Logicalref = LG_001_01_STLINE.Stockref





Umarım çözümlerinizi paylaşırsınız ,

teşekkürler..

Ersoy AYDIN
Logo Sistem Uzmanı
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Selam,

Yazım düzeni için kusura bakmayın. İstediğiniz toplamları veren sonuçlar dönüyor.
Kod:
select A.logicalref, A.item_code,
(select sum(B.amount) from LG_001_01_STLINE B where (A.logicalref = B.Stockref) and B.trcode=1) as alımlar,
(select sum(B.amount) from LG_001_01_STLINE B where (A.logicalref = B.Stockref) and B.trcode=8) as satışlar,
(select sum(B.amount) from LG_001_01_STLINE B where (A.logicalref = B.Stockref) and B.trcode=3) as satış_iade,
(satışlar - satış_iade) as nettutar
from LG_001_ITEMS A
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Hocam , ilginize teşekkürler...

Fakat ilgili kodu veritabanıma göre uyguladım...

hata mesajları döndü...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Hata mesajı nedir? Standart bir sorgu olduğu için hata döndürmemesi gerekirdi.
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Server: Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'AS'.
Server: Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'AS'.
Server: Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword 'AS'.
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Mesela şu şekilde Cari Hesapların Toplam Brüt cirolarını (Toplam Satış Tutarlarını)çekebiliyorum.

SELECT

CH.CODE AS 'CH KODU',
CH.DEFINITION_ AS 'CH ÜNVANI',

SUM(LG_086_01_INVOICE.NETTOTAL) AS [TOPLAM Ciro]

FROM LG_086_01_INVOICE INNER JOIN

LG_086_CLCARD CH ON LG_086_01_INVOICE.CLIENTREF = CH.LOGICALREF

WHERE (LG_086_01_INVOICE.CANCELLED = 0) AND CH.ACTIVE=1

GROUP BY LG_086_01_INVOICE.TRCODE,CH.CODE, CH.DEFINITION_

HAVING (LG_086_01_INVOICE.TRCODE = 8)

ORDER BY CH.CODE
================================================================0
şu şekilde Cari Hesapların Toplam Alımları (Toplam Alım Tutarlarını)çekebiliyorum.

SELECT

CH.CODE AS 'CH KODU',
CH.DEFINITION_ AS 'CH ÜNVANI',

SUM(LG_086_01_INVOICE.NETTOTAL) AS [TOPLAM Alımlar]

FROM LG_086_01_INVOICE INNER JOIN

LG_086_CLCARD CH ON LG_086_01_INVOICE.CLIENTREF = CH.LOGICALREF

WHERE (LG_086_01_INVOICE.CANCELLED = 0) AND CH.ACTIVE=1

GROUP BY LG_086_01_INVOICE.TRCODE,CH.CODE, CH.DEFINITION_

HAVING (LG_086_01_INVOICE.TRCODE = 1)

ORDER BY CH.CODE

AMa bu iki QUERY i birleştirip

CH Kodu , Ünvanı , Satışlar , Alımlar şeklinde alamıyorum.
 
Son düzenleme:
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Karmaşık SELECT ifadeleri Basitleşti Katkılarından dolayı ANEMOS a teşekkürler...

SELECT ITEM_CODE AS [Stok Kodu], ITEM_NAME AS [Stok ADI],

ISNULL((SELECT SUM(Amount) FROM LG_001_01_STLINE WHERE LG_001_ITEMS.logicalref = LG_001_01_STLINE.Stockref AND TRCODE = 1),0) AS ALIMLAR,
ISNULL((SELECT SUM(Amount) FROM LG_001_01_STLINE WHERE LG_001_ITEMS.logicalref = LG_001_01_STLINE.Stockref AND TRCODE = 8),0) AS SATISLAR,
ISNULL((SELECT SUM(Amount) FROM LG_001_01_STLINE WHERE LG_001_ITEMS.logicalref = LG_001_01_STLINE.Stockref AND TRCODE = 3),0) AS IADELER,
ISNULL((SELECT SUM(Amount) FROM LG_001_01_STLINE WHERE LG_001_ITEMS.logicalref = LG_001_01_STLINE.Stockref AND TRCODE = 8),0) -
ISNULL((SELECT SUM(Amount) FROM LG_001_01_STLINE WHERE LG_001_ITEMS.logicalref = LG_001_01_STLINE.Stockref AND TRCODE = 3),0) AS NET_SATIS

FROM LG_001_ITEMS

=================================================
ilk çalışmada sorun Türkçe karakterlerden kaynaklanıyormuş...

çalışmamın ayrıntılarını aşağıdaki linkde bulabilirsiniz..

http://www.logodestek.gen.tr/index.php?board=13;topic=1557.4#msg6549

hepinize kolay gelsin...
 
Son düzenleme:
Üst