Logo Destek
Logo Plus Acil Destek (Plus versiyonlarına artık buradan destek verilecektir.) => GO3 - GO PLUS => Konuyu başlatan: Yitik - 15.02.2013, 10:42
-
Merhaba arkadaşlar, aşağıdaki sorgu ile satış fiyatları ve stok bilgisini alıyorum.
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.
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.
rs.Open "select * from stokbaris WHERE stokbaris.[MALZ. KODU] LIKE '" & TextBox5.Text & "%'", con, 1, 1
Ya 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.
-
distinct denedin mi ?
-
Konuyu Asıl yerine taşısak iyidir.
İyi çalışmalar
-
Baran Bey sql i öğrenme aşamasındayım, distinct ile tek alanı alabiliyoruz diye biliyorum o yüzden hiç denemedim.
-
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.
-
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
-
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)
-
Halis Bey sorgunuzu kendi firma bilgilerime göre düzenledim, hata vermiyor, fakat herhangi bir bilgi getirmiyor.
-
o alış fiyatlı ondan satış fiyatına çevir
-
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.
-
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.
-
Mehmet Bey HAVING kısmıyla ilgili her iki önerinizide denedim NULL değerleri 1 defa diğerlerini 2 defa listeliyor.
-
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
-
Halis teknik olarak sende dogru cikan sonuclar diger deneyen her 5 kisiden 3 'Nde yanlis sonuc dondurur.Buda oyle olacak
-
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ı
-
Sorun bu degil,senin db ve program Cok eski yenilere uyumsuz olabiliyor !
-
haaa o başka tabi
Yakında bizi müzeye alacaklar doğru
özellikle bu kısım olabilir
Lg_008_06_GNTOTST
-
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
İşte bu yüzden paylaşımlara dikkat edin, yasak olan query leri paylaşmayın alıp ne olduğuna bakmadan direkt kullananlar var.
-
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)
distinct denedin mi ?
Merhaba arkadaşlar, Cuma günü İzmir'e gitmem gerekiyordu sanırım o yüzden kafam biraz dağınıktı.Hafta sonu kaçış iyi gelmiş olacak ki :), bugün Baran bey'in tavsiyesiyle "distinct" komutunu, Mehmet bey'in tavsiyesi ilede "or PRCLIST.PTYPE ISNULL" komutunu sorguya ekledim sonuç çok iyi görünüyor. Tek sıkıntı arızalı iadeleride ekranıma getiriyor.. Bunun dışında tam istediğim gibi. İlgilenen tüm arkadaşlara teşekkür ederim. Arızalıları getirmemesi için tavsiyelerinizi bekliyorum. İyi çalışmalar dilerim.
-
Arızalılar için bir ambar varsa ambar kodunu sorguya dahil edebilirsiniz
-
Bizde ambar bilgileri tüm stoklarda "0" Baran bey, fakat arızalı ürünlerin grup kodu "98", bu sorguyu vba da küçük bir program için kullanıyorum, aslında orada "if" yardımıyla bu sonuçları eleyebilirim, ancak her istasyondaki kodları yenilemem lazım, ayrıca sql öğrenmek istiyorum o yüzden konuyu sorgu içinde çözebilirsek, bende sql bilgilerimin üstüne 1-2 tuğla koymuş olacağım. İyi çalışmalar dilerim.