Forum
Yanı hazır sorgu bulmanız biraz zor. Raporu hazırlayan siz olduğunuz için kendiniz tasarlamak zorundasınız.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Erdem Bey merhaba
bu tarz bir sorguyu daha önce yapmış biri varsada paylaşabilir o sorguyu revize ederim benim yapacağım şekilde. Hangi tablolardan çekilecek alt sorguları veya tablo birleştirmeleri nasıl yapılmış onu görürsem işime yarayabilir.
Teşekkürler
istediğim özet olarak satışlar ve yanında kalan stok adedi.
Stok modülündeki satışlar içinde satışlar ve kalan raporu var onu yapmak istiyorum.
Hocam örnek olarak LOGO için şöyle bir sorgu var
--DEPOLARIN STOK DURUMLARINI GÖSTERİR
SELECT
ITM.CODE,ITM.NAME,WH.NR AMBARNO,WH.NAME AMBARADI,GST.ONHAND MIKTAR
FROM LG_XXX_ITEMS ITM
INNER JOIN LG_XXX_XX_GNTOTST GST ON GST.STOCKREF =ITM.LOGICALREF
INNER JOIN L_CAPIWHOUSE WH ON WH.NR=GST.INVENNO AND WH.FIRMNR =XXX --firma numarası
--WHERE ITM.CODE LIKE '11564236%' AND WH.NR=XX --depo numarası
ORDER BY WH.NR
yani yaklaşık olarak bu tatta sql ler yazmanız gerekir. veya daha büyük sorgular.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Erdem Bey teşekkürler bilgi paylaşımınız için.
SQL Server Profiler kullanma konusunda bilginiz var ise Winner'dan raporu çalıştırdığınızda SQL Server tarafında neler olup bittiğini görüntüleyip oradan query alabilirsiniz.
Hocam muhtelemelen dediğiniz gibi bir rapor var ise o şekildede erişilebilir .
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Stok -> Satış/Alış Raporları -> Satış ve Kalan raporunun query sini Profiler ile yakalayarak sonuca ulaşaiblirsiniz. Takıldığınız yer olur ise yardımcı olmaya çalışırım.
Arkadaşlar merhaba profiler bilgisi için öncelikle çok teşekkür ederim.
Ufuk Bey selamlar,
sql profilerden kodu aldım. Asp.net te bir proje yapmaya çalışıyorum.
3 textbox olacak textbox1 ürün adı textbox2 ve 3 tarih aralığı vererek o ürüne ait "satış ve kalan depolar altalta" raporundaki şekilde olmasını istiyorum.
Alttaki queryde sorgu yapınca aşağıdaki tarih aralığına göre olan rapor doğru geliyor(sqlde çalışması için alttaki 31/12/2078 tarihini 08/08/2014 yapınca çalıştı).
birkaç deneme yaptım whereye başlangıç ve bitiş tarihine göre sorgu verdim tbStokFisiDetayi.dteIslemTarihi > = ? and tbStokFisiDetayi.dteIslemTarihi < = ? gibi bu seferde tüm bilgileri aynı tablodan aldığı için satışlar doğru fakat stoklar yanlış çıkıyor.
asp.net te textboxlardaki sorguyu sqldatasource ile query içinden veriyorum.
Yardımlarınız için şimdiden teşekkürler.
select SinifKodu, SinifAciklama, Kod, Renk, RenkAdi, Beden, Kavala, StokAdi,
Depo, DepoAdi,
SatisMiktari as SatisMiktari, SatisTutari as SatisTutari,
IadeSatisMiktari as IadeSatisMiktari, IadeSatisTutari as IadeSatisTutari,
NetSatisMiktari as NetSatisMiktari, NetSatisTutari as NetSatisTutari,
FiyatSatis0, FiyatSatis1, FiyatSatis2, FiyatSatis3,
KalanMiktari as KalanMiktari,
FiyatKalan0, FiyatKalan1, FiyatKalan2, FiyatKalan3,
min(IlkSevkTarihi) as IlkSevkTarihi,
0 as SatisHizi,
0 as RafOmru,
0 as ToplamSatis
,DepoCariKodu, DepoCariAck
,StokOzelNot, StokKisaAdi
,BedenTipi,KavalaTipi
from (
select '' as SinifKodu, '' as SinifAciklama, tbStok.sKodu as Kod
, Renk = tbStok.sRenk
, RenkAdi = tbRenk.sRenkAdi, '' as Beden, '' as Kavala, tbStok.sAciklama as StokAdi,
tbStokFisiDetayi.sDepo as Depo, tbDepo.sAciklama as DepoAdi,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisMiktari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisTutari,
0 as FiyatSatis0, 0 as FiyatSatis1, 0 as FiyatSatis2, 0 as FiyatSatis3,
sum(lGirisMiktar1 - lCikisMiktar1) As KalanMiktari,
0 as FiyatKalan0, 0 as FiyatKalan1, 0 as FiyatKalan2, 0 as FiyatKalan3,
'' as IlkSevkTarihi,
'01/01/1900' as IlkGirisTarihi,
0 as ToplamSatis
, '' as DepoCariKodu, '' as DepoCariAck
,'' as StokOzelNot
,'' as StokKisaAdi
,'' as BedenTipi
,'' as KavalaTipi
from tbStokFisiDetayi, tbFisTipi, tbRenk, tbDepo, tbStok
where tbStok.nStokId = tbStokFisiDetayi.nStokID
and tbstokFisiDetayi.sFisTipi = tbFisTipi.sFistipi
and nStokTipi <> 4
and tbstok.sRenk = tbRenk.sRenk
and tbStokFisiDetayi.sDepo = tbDepo.sDepo
and tbStokFisiDetayi.dteIslemTarihi < = '31/12/2078'
and ( tbStokFisiDetayi.sDepo='25' or tbStokFisiDetayi.sDepo='29' or tbStokFisiDetayi.sDepo='26' or tbStokFisiDetayi.sDepo='27' or tbStokFisiDetayi.sDepo='28' or tbStokFisiDetayi.sDepo='21' or tbStokFisiDetayi.sDepo='01' or tbStokFisiDetayi.sDepo='23' or tbStokFisiDetayi.sDepo='20' or tbStokFisiDetayi.sDepo='24' or tbStokFisiDetayi.sDepo='22' ) and tbStok.sAciklama like '%WHT KRAVAT KRT:11-989%'
group by tbStok.sKodu, tbStok.sRenk, tbRenk.sRenkAdi, tbStok.sAciklama
, tbStokFisiDetayi.sDepo, tbDepo.sAciklama
) as tempSatisKalan
where 1=1
group by SinifKodu, SinifAciklama, Kod, Renk, RenkAdi, Beden, Kavala, StokAdi,Depo, DepoAdi
,SatisMiktari, SatisTutari
,IadeSatisMiktari, IadeSatisTutari
,NetSatisMiktari, NetSatisTutari
, KalanMiktari, ToplamSatis
,FiyatSatis0, FiyatSatis1, FiyatSatis2, FiyatSatis3
,FiyatKalan0, FiyatKalan1, FiyatKalan2, FiyatKalan3
,StokOzelNot, StokKisaAdi, BedenTipi , KavalaTipi
, DepoCariKodu, DepoCariAck
order by StokAdi, Kod, Renk, Beden, Kavala, Depo
Satışlar ve kalan konusu gerçekten zor bir konuymuş.
Merhaba
query nin bu alttaki kısımdaki tarih aralığını textboxlara nasıl aktarırım?
tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' yerine
where tbStokFisiDetayi.dteFisTarihi >=? and tbStokFisiDetayi.dteFisTarihi <=? gibi bir sorguyu buraya yerleştirebilir miyim?
'01/01/2014' and '08/08/2014' değerlerinin textbox1 ve textbox2 den gelmesini istiyorum.
Querynin bölümü;
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisMiktari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisTutari,
yani teorik olarak soyluyorum sızın yazılımıza gore yontemınız degısebılır
var Date1,Date2 ;
Date1 = TextBox1.Text;
Date2 = TextBox2.Text;
var SQL =" sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '"+Date1+"' and '"+Date2+"' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisMiktari,
sum(tbStokFisiDetayi.lCikisMiktar1 * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisMiktari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (4 - tbStokFisiDetayi.nGirisCikis) ) as SatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) * (tbStokFisiDetayi.nGirisCikis - 3) ) as IadeSatisTutari,
sum(tbStokFisiDetayi.lCikisTutar * bSatisMi * (case when 1 = 1 and tbStokFisiDetayi.dteFisTarihi between '01/01/2014' and '08/08/2014' then 1 else 0 end ) ) as NetSatisTutari, " ;
Şeklinde haraket edebilirsiniz. Eğer bu bir prosedür ise prosedüre in parametre gönderebilirsiniz.
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Teşekkürler Erdem Bey deneyeyim bu metoda göre.
Stok kalanı ve satışları iki ayrı gridviewde aşağıdaki sorgularla alıyorum. Bu sorguları Alt sorgu olarak birleştirebilir miyiz?
Ana sorgu Stok kalan Alt sorgu ise satış miktar ve tutarı olacak şekilde tek bir gridviewde göstebilecek şekilde.
STOK KALAN SORGUSU
SELECT nStokID,[sKodu], [sAciklama], [sRenkAdi], [sBeden], [sKavala],
SUM([lGirisMiktar1]-[lCikisMiktar1]) AS KALAN
FROM [BUENZA].[dbo].[vwBUENZASTOKSATIS]
WHERE ([dteIslemTarihi] >= '01.01.1900')
and ([dteIslemTarihi] <= ?)
and [sAciklama] = 'SIRINEVLER'
AND Expr2 = 'BNZ DOM M-303 HAKIM YAKA SLIM FIT MONT KRT: 14-119'
group by nStokID,[sKodu], [sAciklama], [sRenkAdi], [sBeden], [sKavala]
order by [sRenkAdi], [sBeden], [sKavala]
-------------------------------------------------------------------------------
SATIŞ MİKTAR VE TUTAR SORGUSU
SELECT [nStokID],
FLOOR(SUM([lCikisMiktar1])) AS MIKTAR ,
SUM([lCikisMiktar1]*[lCikisFiyat]) AS TUTAR
FROM [vwBUENZASTOKSATIS]
WHERE (([dteIslemTarihi] >= ?) AND ([dteIslemTarihi] <= ?))
AND [Expr2] = 'BNZ DOM M-303 HAKIM YAKA SLIM FIT MONT KRT: 14-119'
AND [sFisTipi] = 'P'
AND [sAciklama] ='SIRINEVLER'
GROUP BY [nStokID]