Stok ve fiyat bilgileri

Gönderen Konu: Stok ve fiyat bilgileri  (Okunma sayısı 2120 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Stok ve fiyat bilgileri
« : 15.02.2013, 10:42 »
Merhaba arkadaşlar, aşağıdaki sorgu ile satış fiyatları ve stok bilgisini alıyorum.
Kod: [Seç]
SELECT     dbo.LG_014_ITEMS.STGRPCODE AS [GRUP KODU], dbo.LG_014_ITEMS.CODE AS [MALZ. KODU], dbo.LG_014_ITEMS.NAME AS [MALZ. AÇIKLAMASI],
                      dbo.LG_014_PRCLIST.PRICE AS [SATIŞ FİYATI], SUM(dbo.LG_014_01_STINVTOT.ONHAND) AS [STOK MİKTARI], dbo.LG_014_PRCLIST.CURRENCY AS [DÖVİZ KODU],
                      dbo.LG_014_ITEMS.CYPHCODE
FROM         dbo.LG_014_01_STINVTOT FULL OUTER JOIN
                      dbo.LG_014_ITEMS ON dbo.LG_014_01_STINVTOT.STOCKREF = dbo.LG_014_ITEMS.LOGICALREF FULL OUTER JOIN
                      dbo.LG_014_PRCLIST ON dbo.LG_014_ITEMS.LOGICALREF = dbo.LG_014_PRCLIST.CARDREF
GROUP BY dbo.LG_014_ITEMS.CODE, dbo.LG_014_ITEMS.NAME, dbo.LG_014_PRCLIST.PRICE, dbo.LG_014_PRCLIST.PTYPE, dbo.LG_014_01_STINVTOT.INVENNO,
                      dbo.LG_014_ITEMS.STGRPCODE, dbo.LG_014_PRCLIST.CURRENCY, dbo.LG_014_ITEMS.CYPHCODE
HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2) AND (dbo.LG_014_01_STINVTOT.INVENNO = - 1)
Fakat bu sorguda hareket görmemiş ve stoğumuzda olmayan ürünler gelmiyor. Bunun üzerine sorgunun son satırını aşağıdaki şekilde değiştirdim.
Kod: [Seç]
SELECT     dbo.LG_014_ITEMS.STGRPCODE AS [GRUP KODU], dbo.LG_014_ITEMS.CODE AS [MALZ. KODU], dbo.LG_014_ITEMS.NAME AS [MALZ. AÇIKLAMASI],
                      dbo.LG_014_PRCLIST.PRICE AS [SATIŞ FİYATI], SUM(dbo.LG_014_01_STINVTOT.ONHAND) AS [STOK MİKTARI], dbo.LG_014_PRCLIST.CURRENCY AS [DÖVİZ KODU],
                      dbo.LG_014_ITEMS.CYPHCODE
FROM         dbo.LG_014_01_STINVTOT FULL OUTER JOIN
                      dbo.LG_014_ITEMS ON dbo.LG_014_01_STINVTOT.STOCKREF = dbo.LG_014_ITEMS.LOGICALREF FULL OUTER JOIN
                      dbo.LG_014_PRCLIST ON dbo.LG_014_ITEMS.LOGICALREF = dbo.LG_014_PRCLIST.CARDREF
GROUP BY dbo.LG_014_ITEMS.CODE, dbo.LG_014_ITEMS.NAME, dbo.LG_014_PRCLIST.PRICE, dbo.LG_014_PRCLIST.PTYPE, dbo.LG_014_01_STINVTOT.INVENNO,
                      dbo.LG_014_ITEMS.STGRPCODE, dbo.LG_014_PRCLIST.CURRENCY, dbo.LG_014_ITEMS.CYPHCODE
HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2)
Bu defada hareket görmeyen ürünler geldi, ancak diğer ürünleri iki defa listeliyor. View i tekrar sorguya sokup GROUP BY komutuyla mükerrer kayıtları almamaya çalışsamda LİKE ifadeside kullanacağım için yapıyı oluşturamadım.
recordset açılış kodlarım şu şekilde.
Kod: [Seç]
rs.Open "select * from stokbaris WHERE stokbaris.[MALZ. KODU] LIKE '" & TextBox5.Text & "%'", con, 1, 1Ya view i düzeltmeliyim yada üstteki recordset açılışında mükerrer kayıtları engellemeliyim. Bu noktada tıkandım kaldım.
İyi çalışmalar dilerim.

Çevrimdışı Silinmiş Kullanıcı

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 2
Ynt: Stok ve fiyat bilgileri
« Yanıtla #1 : 15.02.2013, 11:39 »
distinct denedin mi ?

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Stok ve fiyat bilgileri
« Yanıtla #2 : 15.02.2013, 13:49 »
Konuyu Asıl yerine taşısak iyidir.
İyi çalışmalar

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #3 : 15.02.2013, 13:50 »
Baran Bey sql i öğrenme aşamasındayım, distinct ile tek alanı alabiliyoruz diye biliyorum o yüzden hiç denemedim.

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #4 : 15.02.2013, 13:51 »
Konuyu Asıl yerine taşısak iyidir.
İyi çalışmalar

Sql başlığını konuyu açtıktan sonra farkettim Halis Bey, biraz dikkatsiz davrandım.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Stok ve fiyat bilgileri
« Yanıtla #5 : 15.02.2013, 13:52 »
bu sorguda stokta olmayan ürünlerde listeleniyor
http://d1302.hizliresim.com/16/h/k45k6.png
SELECT     
ITM.CODE AS KODU,
ITM.STGRPCODE AS Kodu,
ITM.NAME AS Adı, onhand AS [Fiili Stok], 
tot.ONHAND-ACTSORDER AS [Gerçek Stok],                             
(SELECT     TOP 1 PRICE                              FROM          LG_008_06_STLINE                              WHERE      STOCKREF = ITM.LOGICALREF AND (TRCODE = 1 OR                                                     (TRCODE = 14 AND BILLED = 0)) AND LPRODSTAT = 0 AND LINETYPE = 0                              ORDER BY DATE_ DESC) AS [Son Alış]  FROM         LG_008_06_GNTOTST TOT INNER JOIN                        LG_008_ITEMS ITM ON ITM.LOGICALREF = TOT.STOCKREF  WHERE     (TOT.INVENNO =0) AND (ITM.ACTIVE = 0)    ORDER BY ITM.NAME
« Son Düzenleme: 15.02.2013, 13:54 Gönderen: halisbatmaz »

Çevrimdışı MehmetYavuz

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: Stok ve fiyat bilgileri
« Yanıtla #6 : 15.02.2013, 13:55 »
Selam,

Having kısmında sıkıntı var. şartınızda type=2 demişsiniz, olmayan ürünler için bu alan null geliyor.

şu şekilde denenebilir:
HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2) or PRCLIST.PTYPE ISNULL

yada

HAVING      ISNULL((dbo.LG_014_PRCLIST.PTYPE, -1)) IN (-1,2)

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #7 : 15.02.2013, 13:59 »
Halis Bey sorgunuzu kendi firma bilgilerime göre düzenledim, hata vermiyor, fakat herhangi bir bilgi getirmiyor.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Stok ve fiyat bilgileri
« Yanıtla #8 : 15.02.2013, 14:03 »
o alış fiyatlı ondan satış fiyatına çevir 

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #9 : 15.02.2013, 14:10 »
Selam,

Having kısmında sıkıntı var. şartınızda type=2 demişsiniz, olmayan ürünler için bu alan null geliyor.

şu şekilde denenebilir:
HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2) or PRCLIST.PTYPE ISNULL

yada

HAVING      ISNULL((dbo.LG_014_PRCLIST.PTYPE, -1)) IN (-1,2)


Mehmet Bey ilk kodu uyguladım gelen satır adeti düştü ancak yine iki defa gelen ürünler var. Logonun içinden stok alıp karşılaştıracağım.

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #10 : 15.02.2013, 14:24 »
o alış fiyatlı ondan satış fiyatına çevir

Halis Bey konuyu doğru anlatamadım benim hatam. 0 stokları görebiliyorum orada bir sıkıntı yok, fakat uzun süredir işlem görmemiş bazı ürünler var onları görmemek için  HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2) AND (dbo.LG_014_01_STINVTOT.INVENNO = - 1) şeklinde idi, şimdi o ürünleride görmemiz gerekiyor  HAVING      (dbo.LG_014_PRCLIST.PTYPE = 2) şeklinde değiştirdim hareket görmeyenler geliyor ancak bu defada hareketli ürünlerimizi 2 defa listeliyor.

Çevrimdışı Yitik

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Stok ve fiyat bilgileri
« Yanıtla #11 : 15.02.2013, 14:33 »
Mehmet Bey HAVING kısmıyla ilgili her iki önerinizide denedim NULL değerleri 1 defa  diğerlerini 2 defa listeliyor.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Stok ve fiyat bilgileri
« Yanıtla #12 : 15.02.2013, 15:18 »
Yani şöyle bişey istiyorsun tam deniyemedim kampanya yapıyoruz. patron yanımda sadece 2 raporumu birleştirdim ama alış fiyatı bu dedimya değitirmeye vaktim yok gizli gizli yazıyorum
 ama istediğini verecektyir. stokta olmayanlarda geliyor üstelik x ürünün kaç gündür satılmadı bilgiside

SELECT
A.CODE ,
A.NAME ,
A.STGRPCODE ,       
ANA_BRIM=ISNULL((Select TOP 1 NAME From LG_008_UNITSETL WHERE LOGICALREF=(SELECT TOP 1 UNITLINEREF FROM LG_008_ITMUNITA I WHERE I.ITEMREF=A.LOGICALREF AND LINENR=1)),''),       A.CAPIBLOCK_CREADEDDATE , 

 (SELECT DATE_ FROM LG_008_05_STLINE WHERE LOGICALREF IN (SELECT TOP 1 LOGICALREF FROM LG_008_06_STLINE    WHERE IOCODE IN (3,4) AND STOCKREF=A.LOGICALREF ORDER BY DATE_ DESC)) ,   

(SELECT ONHAND FROM Lg_008_06_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF)  ,   
CAST ((GETDATE()-(SELECT DATE_ FROM LG_008_05_STLINE WHERE LOGICALREF IN (SELECT TOP 1 LOGICALREF FROM LG_008_06_STLINE     WHERE IOCODE IN (3,4) AND STOCKREF=A.LOGICALREF ORDER BY DATE_ DESC))) AS INT),
(SELECT     TOP 1 PRICE                              FROM          LG_008_06_STLINE                              WHERE      STOCKREF = A.LOGICALREF AND (TRCODE = 2 OR                                                     (TRCODE = 14 AND BILLED = 0)) AND LPRODSTAT = 0 AND LINETYPE = 0                              ORDER BY DATE_ DESC) AS [Son Satış]
   
FROM LG_008_ITEMS A,  LG_008_UNITSETF UN   WHERE A.CARDTYPE IN (1,11,12)  AND   A.UNITSETREF=UN.LOGICALREF AND A.ACTIVE=0 AND      (SELECT ONHAND FROM Lg_008_06_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF)>0.5  ORDER BY A.NAME   
« Son Düzenleme: 15.02.2013, 15:42 Gönderen: halisbatmaz »

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Stok ve fiyat bilgileri
« Yanıtla #13 : 15.02.2013, 15:26 »
Halis teknik olarak sende dogru cikan sonuclar diger deneyen her 5 kisiden 3 'Nde yanlis sonuc dondurur.Buda oyle olacak

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Stok ve fiyat bilgileri
« Yanıtla #14 : 15.02.2013, 15:41 »
Bu son satış fiyatı üzerinden 
KODU
ÜRÜN ADI
GRUP KODU
BİRİM
KAYIT TARİHİ
SON HAREKET TARİHİ
SON SATIŞ FİYATI
--------------------------------
ben denemeden kontrol etmeden hiç bir kodu yayınlamıyorum hocam mahçup olmakta var işin içinde
yanlış çeviren kim o hele 1 adım öne gelsin görüm onu   
AYRICA BUNU BİLE YAPABİLİYORSAM NE MUTLU BANA
BUGÜN BİR ARK. BANA MSJ ÇEKTİ ŞÖYLE YAZIYOR.
TARİH 12.06.2012 " ben kod yazamıyorum ancak değiştirebiliyorum" bunu ben yazmıştım  şimdi sizin sayenizde durum ortada
--------------------------------------------------------------------
SELECT
A.CODE ,
A.NAME ,
A.STGRPCODE ,       
ANA_BRIM=ISNULL((Select TOP 1 NAME From LG_008_UNITSETL WHERE LOGICALREF=(SELECT TOP 1 UNITLINEREF FROM LG_008_ITMUNITA I WHERE I.ITEMREF=A.LOGICALREF AND LINENR=1)),''),       A.CAPIBLOCK_CREADEDDATE , 

 (SELECT DATE_ FROM LG_008_06_STLINE WHERE LOGICALREF IN (SELECT TOP 1 LOGICALREF FROM LG_008_06_STLINE    WHERE IOCODE IN (3,4) AND STOCKREF=A.LOGICALREF ORDER BY DATE_ DESC)) ,   

(SELECT ONHAND FROM Lg_008_06_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF)  ,   
CAST ((GETDATE()-(SELECT DATE_ FROM LG_008_06_STLINE WHERE LOGICALREF IN (SELECT TOP 1 LOGICALREF FROM LG_008_06_STLINE     WHERE IOCODE IN (3,4) AND STOCKREF=A.LOGICALREF ORDER BY DATE_ DESC))) AS INT),
(SELECT     TOP 1 PRICE                              FROM          LG_008_06_STLINE                              WHERE      STOCKREF = A.LOGICALREF AND (TRCODE = 8 OR                                                     (TRCODE = 3 AND BILLED = 0)) AND LPRODSTAT = 0 AND LINETYPE = 0                              ORDER BY DATE_ DESC) AS [Son Satış]
   
FROM LG_008_ITEMS A,  LG_008_UNITSETF UN   WHERE A.CARDTYPE IN (1,11,12)  AND   A.UNITSETREF=UN.LOGICALREF AND A.ACTIVE=0 AND      (SELECT ONHAND FROM Lg_008_06_GNTOTST WHERE INVENNO=0 AND STOCKREF=A.LOGICALREF)>0.5  ORDER BY A.NAME   
--------------
Hiç uyarmıyorsunuz da  orda dönemlerim farklı