bekleyen siparişler

Gönderen Konu: bekleyen siparişler  (Okunma sayısı 1246 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
bekleyen siparişler
« : 27.11.2012, 13:52 »
arkadaşlar bi sorgu yazdım ( bekleyen siparişler ) nir konuda tıkandım yardımlarınızı bekliyorum
x ürünü a müşterisine 2 defa yazılınca haliylen 2 ayrı satır halinde gösteriyor bunu birleştirme durumumuz varmı acaba
sorgu şu

SELECT CLCARD.DEFINITION_ AS 'ÜNVANI', CLCARD.CITY AS 'ŞEHİR', ITEMS.NAME AS 'ÜRÜN ADI', ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT AS 'KALAN', CLCARD.SPECODE AS 'PLS', GNTOTST.ONHAND-ACTSORDER AS 'STOK', CLCARD.DELIVERYFIRM AS 'BÖLGE', CASE(ORFLINE.LINETYPE)  WHEN 0 THEN 'SATIŞ'  WHEN 1 THEN 'PROMOSYON'  END 'TÜR'  FROM LKSDB.dbo.LG_008_CLCARD CLCARD, LKSDB.dbo.LG_008_05_GNTOTST GNTOTST, LKSDB.dbo.LG_008_ITEMS ITEMS, LKSDB.dbo.LG_008_05_ORFLINE ORFLINE  WHERE CLCARD.LOGICALREF = ORFLINE.CLIENTREF AND ITEMS.LOGICALREF = ORFLINE.STOCKREF AND ITEMS.LOGICALREF = GNTOTST.STOCKREF AND ((GNTOTST.INVENNO='0') AND (ORFLINE.LINETYPE In (0,1)) AND (ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT>0) AND (ITEMS.CARDTYPE=1))  ORDER BY CLCARD.DEFINITION_

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: bekleyen siparişler
« Yanıtla #1 : 27.11.2012, 14:35 »
ORFLINE ile ilgili olanları SUM kısmına almak gerekiyor. diğerleri de GROUP BY  da bırakılmalı. birde satır türü çıkarılmalı.

for example halis:
SELECT CLCARD.DEFINITION_ AS 'ÜNVANI', CLCARD.CITY AS 'ŞEHİR', ITEMS.NAME AS 'ÜRÜN ADI', SUM(ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT) AS 'KALAN', CLCARD.SPECODE AS 'PLS', GNTOTST.ONHAND-ACTSORDER AS 'STOK', CLCARD.DELIVERYFIRM AS 'BÖLGE'
FROM LKSDB.dbo.LG_008_CLCARD CLCARD, LKSDB.dbo.LG_008_05_GNTOTST GNTOTST, LKSDB.dbo.LG_008_ITEMS ITEMS, LKSDB.dbo.LG_008_05_ORFLINE ORFLINE 
WHERE CLCARD.LOGICALREF = ORFLINE.CLIENTREF AND ITEMS.LOGICALREF = ORFLINE.STOCKREF AND ITEMS.LOGICALREF = GNTOTST.STOCKREF AND ((GNTOTST.INVENNO='0') AND (ORFLINE.LINETYPE In (0,1)) AND (ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT>0) AND (ITEMS.CARDTYPE=1)) 
GROUP BY CLCARD.DEFINITION_, CLCARD.CITY, ITEMS.NAME, CLCARD.SPECODE, GNTOTST.ONHAND-ACTSORDER , CLCARD.DELIVERYFIRM
ORDER BY CLCARD.DEFINITION_ gibi bişey olmalı
 
Halise not: ben UNION ile yapardım. yönetmesi daha kolay.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: bekleyen siparişler
« Yanıtla #2 : 27.11.2012, 15:02 »
hocam dediğini örneğe bakarak anladım ancak şöyle bir durum var sorguda da gördüğün gibi LINETYPE IN (0,1)  olduğundan benim olmasını istediğim rapor
x firmanının farklı tarihlerde vermiş olduğu ve hali hazırda beklyen siparişlerinden
aaa ürününün lınetype i aynı ise toplamasını farklı ise toplamamasını istiyorum yani
aaa ürünü
x tarih         5 ad   lınetype 0
x tarih       10 ad   lınetype 0
x tarih         1 ad   lınetype 1
sonuç  aaa ürünü
15 ad   lınetype 0
  1 ad   lınetype 1
çünkü ben case yapıp bunları satış ve promosyon diye belirteceğim

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: bekleyen siparişler
« Yanıtla #3 : 27.11.2012, 15:25 »
SELECT CLCARD.DEFINITION_, CLCARD.CITY, ITEMS.NAME, SUM(ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT), CLCARD.SPECODE, GNTOTST.ONHAND-ACTSORDER, CLCARD.DELIVERYFIRM, ORFLINE.LINETYPE
FROM LKSDB.dbo.LG_008_CLCARD CLCARD, LKSDB.dbo.LG_008_05_GNTOTST GNTOTST, LKSDB.dbo.LG_008_ITEMS ITEMS, LKSDB.dbo.LG_008_05_ORFLINE ORFLINE
WHERE CLCARD.LOGICALREF = ORFLINE.CLIENTREF AND ITEMS.LOGICALREF = ORFLINE.STOCKREF AND ITEMS.LOGICALREF = GNTOTST.STOCKREF AND ((GNTOTST.INVENNO='0') AND (ORFLINE.LINETYPE In (0,1)) AND (ORFLINE.AMOUNT-ORFLINE.SHIPPEDAMOUNT>0) AND (ITEMS.CARDTYPE=1))
GROUP BY CLCARD.DEFINITION_, CLCARD.CITY, ITEMS.NAME, CLCARD.SPECODE, GNTOTST.ONHAND-ACTSORDER, CLCARD.DELIVERYFIRM, ORFLINE.LINETYPE
ORDER BY CLCARD.DEFINITION_

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: bekleyen siparişler
« Yanıtla #4 : 27.11.2012, 15:28 »
iki ayrı kolonda ver.
malzeme=sum(case when linetype=0...
promosyon=sum(case when linetype=1...

diğer türlü yaparsan rakamların katlar. şöyleki a ürününden depoda 36 adet var. malzeeme olarak 22 siparişin var, promosyon olarakda 2 dersen raporun şöyle olur hali hazırda ki haliyle:

ürün tür  bekleyen sipariş stok durumu
a  malzeme 22 36
a promosyon 2 36

satırdan almanın kıllığı burda. raporu böyle yapmak yerine şunu yapabiliriz: üstteki gibi yaparsan:

ürün bekleyen_malzeme, bekleyen_promosyon, stok
a...22...2...36

yorumlamasıda kolay, 36 ürünüm var. toplamda 24 bekleyen sipairşim. okurken gözde yorulmuyor. yanınada bir formül. stok-sipariş bitti gitti.