Forum

winner sql query so...
 
Bildirimler
Hepsini Temizle

winner sql query sorgusu

14 Yazılar
4 Üyeler
0 Likes
1,009 Görüntüleme
(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 18/11/2014 02:54

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

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

 
Gönderildi : 18/11/2014 03:46

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

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.

 
Gönderildi : 18/11/2014 11:42

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 18/11/2014 13:39

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

Erdem Bey teşekkürler bilgi paylaşımınız için. 

 
Gönderildi : 19/11/2014 19:32

(@caglarozenc)
Gönderiler: 247
Reputable Member
 

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. 

 
Gönderildi : 19/11/2014 19:34

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 19/11/2014 20:07

(@UfukDeniz)
Gönderiler: 95
Estimable Member
 

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.

 
Gönderildi : 19/11/2014 20:12

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

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 

 

 
Gönderildi : 20/11/2014 21:46

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

Satışlar ve kalan konusu gerçekten zor bir konuymuş.

 
Gönderildi : 21/11/2014 21:57

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

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, 

 
Gönderildi : 28/11/2014 20:12

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 28/11/2014 20:42

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

Teşekkürler Erdem Bey deneyeyim bu metoda göre.

 
Gönderildi : 28/11/2014 22:51

(@evrengokdemir)
Gönderiler: 51
Trusted Member
Konu başlatıcı
 

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] 

 

 
Gönderildi : 28/11/2014 22:56

Paylaş: