分组和案例

时间:2016-06-17 08:06:53

标签: sql group-by case

我的查询是这样的,

SELECT 
      a.Tarih
     ,'Gebze Fabrika' as [Departman]
     ,SUM(CONVERT(int,a.[KKTShirtAdet])*z.TxtKKTShirtFiyat) as [Kısa Kollu TShirt (TL)]
     ,(SELECT SUM(Convert(int,b.[UKTShirtAdet])) FROM [E_WBR_ISK_FrmFabrikaMudurleri_TblRapor] b WHERE b.[UKTShirtBeden]<>'1' and a.Tarih=b.Tarih and case when a.[DepartmanAdi] like '%GEBZE%' then a.[DepartmanAdi] end=case when b.[DepartmanAdi] like '%GEBZE%' then b.[DepartmanAdi] end
           GROUP BY case when b.[DepartmanAdi] like '%GEBZE%' then b.[DepartmanAdi] end,b.Tarih)*z.TxtUKTShirtFiyat as [Uzun Kollu TShirt (TL)]
     ,SUM(CASE WHEN PantolonBeden<>'1' and DepartmanAdi like '%GEBZE%' THEN z.TxtPantolonFiyat ELSE 0 END) as [Pantolon (TL)]
     ,SUM(CASE WHEN [CelikBurunlu]='Ayakkabı' and AyakkabiNo<>'' and DepartmanAdi like '%GEBZE%' THEN z.TxtCBAyakkabiFiyat ELSE 0 END) as [Çelik Burunlu Ayakkabı (TL)]
     ,SUM(CASE WHEN [CelikBurunlu]='Çizme' and AyakkabiNo<>'' and DepartmanAdi like '%GEBZE%' THEN z.TxtCBCizmeFiyat ELSE 0 END) as [Çelik Burunlu Çizme (TL)]
     ,SUM(CASE WHEN [CelikBurunlu]='Terlik' and AyakkabiNo<>'' and DepartmanAdi like '%GEBZE%' THEN z.TxtCBTerlikFiyat ELSE 0 END) as [Çelik Burunlu Terlik (TL)]
     ,(SELECT SUM(CASE WHEN c.[OnlukCins]='Bay' THEN Convert(int,c.[OnlukAdet]) ELSE 0 END) FROM [E_WBR_ISK_FrmFabrikaMudurleri_TblRapor] c WHERE c.[OnlukBeden]<>'1' and a.Tarih=c.Tarih and case when a.[DepartmanAdi] like '%GEBZE%' then a.[DepartmanAdi] end=case when c.[DepartmanAdi] like '%GEBZE%' then c.[DepartmanAdi] end
GROUP BY case when c.[DepartmanAdi] like '%GEBZE%' then c.[DepartmanAdi] end,c.Tarih)*z.TxtBayOnlukFiyat as [Bay Önlük (TL)]
     ,(SELECT SUM(CASE WHEN d.[OnlukCins]='Bayan' THEN Convert(int,d.[OnlukAdet]) ELSE 0 END) FROM [E_WBR_ISK_FrmFabrikaMudurleri_TblRapor] d WHERE d.[OnlukBeden]<>'1' and a.Tarih=d.Tarih and case when a.[DepartmanAdi] like '%GEBZE%' then a.[DepartmanAdi] end=case when d.[DepartmanAdi] like '%GEBZE%' then d.[DepartmanAdi] end
GROUP BY case when d.[DepartmanAdi] like '%GEBZE%' then d.[DepartmanAdi] end,d.Tarih)*z.TxtBayanOnlukFiyat as [Bayan Önlük (TL)]
FROM [E_WBR_ISK_FrmFabrikaMudurleri_TblRapor] a, [E_WBR_ISK_PrmFiyatlar] z
WHERE a.[KKTShirtBeden]<>'1' and DepartmanAdi like '%GEBZE%' and a.Tarih='17.6.2016'
GROUP BY case when a.[DepartmanAdi] like '%GEBZE%' then a.[DepartmanAdi] end,a.Tarih,z.TxtUKTShirtFiyat,z.TxtBayOnlukFiyat,z.TxtBayanOnlukFiyat

和附件中的结果,有多行,我只想要一行,我该怎么办,请帮助我。谢谢。enter image description here

1 个答案:

答案 0 :(得分:0)

如果您想要一个结果,您可以使用TOP:

SELECT TOP 1 * 
FROM Table

在MySQL的情况下为LIMIT

SELECT *
FROM Table
LIMIT 1;

了解更多信息http://www.w3schools.com/sql/sql_top.asp