iT邦幫忙

0

請各位大神指點邏輯sql 以下報表該如何下

  • 分享至 

  • xImage

請各位大神指點邏輯sql 以下報表該如何下指令
腦袋一片空白
https://ithelp.ithome.com.tw/upload/images/20220618/20148637zRkLcGTVxH.png

selsct 人員 ,sum(1月) 至 sum(12月) form 費用
where 年='2022' and 費用='維修費'
group by 人員
匯出成Excel後..加總各月份(偷懶一下...)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
allenlwh
iT邦高手 1 級 ‧ 2022-06-20 09:28:11
最佳解答

https://ithelp.ithome.com.tw/upload/images/20220620/20033493dGL7Sc4Fow.jpghttps://ithelp.ithome.com.tw/upload/images/20220620/20033493iMFZVRKkPj.jpg

select t0.[人員],sum(t0.m1) as '1月',sum(t0.m2) as '2月',sum(t0.m3) as '3月'
from 
	(
	SELECT [人員]
		  ,year([RECEIVEDATE]) as yy
		  , case when month([RECEIVEDATE])=1 then [維修費] else 0 end as m1
		  , case when month([RECEIVEDATE])=2 then [維修費] else 0 end as m2
		  , case when month([RECEIVEDATE])=3 then [維修費] else 0 end as m3	  
	  FROM [MyLab].[dbo].[費用]
	) t0
where t0.yy=2022
group by t0.[人員]
看更多先前的回應...收起先前的回應...
yu0901 iT邦新手 4 級 ‧ 2022-06-20 09:59:56 檢舉

感謝
請問

select MECHANIC_NAME 維修人員, DATEPART(MONTH, RECEIVEDATE) 月, TOTALAMOUNT 維修金 from WO

其中DATEPART(MONTH, RECEIVEDATE) 月
如何取出1月,2月,3月,.........
維修費加總?

allenlwh iT邦高手 1 級 ‧ 2022-06-20 10:10:42 檢舉

DATEPART(MONTH, RECEIVEDATE)=1 就是1月
DATEPART(MONTH, RECEIVEDATE)=2 就是2月
...餘類推

allenlwh iT邦高手 1 級 ‧ 2022-06-20 10:12:38 檢舉
select t0.[人員],sum(t0.m1) as '1月小計',sum(t0.m2) as '2月小計',sum(t0.m3) as '3月小計'
from 
	(
	SELECT [人員]
		  ,year([RECEIVEDATE]) as yy
		  , case when DATEPART(MONTH, RECEIVEDATE)=1 then [維修費] else 0 end as m1
		  , case when DATEPART(MONTH, RECEIVEDATE)=2 then [維修費] else 0 end as m2
		  , case when DATEPART(MONTH, RECEIVEDATE)=3 then [維修費] else 0 end as m3
	  FROM [MyLab].[dbo].[費用]
	) t0
where t0.yy=2022
group by t0.[人員]
yu0901 iT邦新手 4 級 ‧ 2022-06-20 10:27:19 檢舉

兄弟,請再多指引方向
一堆紅蚯蚓
https://ithelp.ithome.com.tw/upload/images/20220620/20148637K62DXFg7KU.png

allenlwh iT邦高手 1 級 ‧ 2022-06-20 10:48:25 檢舉

請新增程式碼的方式,貼sql語法上來

yu0901 iT邦新手 4 級 ‧ 2022-06-20 12:01:39 檢舉

請再多給點方向!

select t0.MECHANIC_NAME 維修人員, sum(t0.m1) as '1月',sum(t0.m2) as '2月',sum(t0.m3) as '3月'
from 
	(
	SELECT MECHANIC_NAME
		  ,year([RECEIVEDATE]) as yy
		  , case when month([RECEIVEDATE])=1 then [維修費] else 0 end as m1
		  , case when month([RECEIVEDATE])=2 then [維修費] else 0 end as m2
		  , case when month([RECEIVEDATE])=3 then [維修費] else 0 end as m3	  
	  FROM [MyLab].[dbo].[費用]
	) t0
where t0.yy=2022
group by MECHANIC_NAME
allenlwh iT邦高手 1 級 ‧ 2022-06-20 12:27:39 檢舉

以下是可以執行的

select t0.MECHANIC_NAME 維修人員, sum(t0.m1) as '1月',sum(t0.m2) as '2月',sum(t0.m3) as '3月'
from 
	(
	SELECT MECHANIC_NAME
		  ,year([RECEIVEDATE]) as yy
		  , case when month([RECEIVEDATE])=1 then [維修費] else 0 end as m1
		  , case when month([RECEIVEDATE])=2 then [維修費] else 0 end as m2
		  , case when month([RECEIVEDATE])=3 then [維修費] else 0 end as m3	  
	  FROM [MyLab].[dbo].[費用]
	) t0
where t0.yy=2022
group by t0.MECHANIC_NAME
yu0901 iT邦新手 4 級 ‧ 2022-06-20 12:52:41 檢舉

不好意思請問我的源碼

select MECHANIC_NAME 維修人員, DATEPART(MONTH, RECEIVEDATE) 月, TOTALAMOUNT 維修費 from WO

1.維修費的欄位要加在哪裡select?
2.FROM [t0].[wo].[費用這欄位要填哪一個]

allenlwh iT邦高手 1 級 ‧ 2022-06-20 13:07:15 檢舉

請把table schema 貼上來

yu0901 iT邦新手 4 級 ‧ 2022-06-20 13:36:53 檢舉

您好請參考table schema
https://ithelp.ithome.com.tw/upload/images/20220620/20148637bUyC1Lk6ve.pnghttps://ithelp.ithome.com.tw/upload/images/20220620/20148637yEBCt5fe0y.pnghttps://ithelp.ithome.com.tw/upload/images/20220620/20148637YTpSJkmwuk.pnghttps://ithelp.ithome.com.tw/upload/images/20220620/20148637haFaArkrU6.png

allenlwh iT邦高手 1 級 ‧ 2022-06-20 15:31:49 檢舉
select t0.MECHANIC_NAME 維修人員, sum(t0.m1) as '1月',sum(t0.m2) as '2月',sum(t0.m3) as '3月'
from 
	(
	SELECT MECHANIC_NAME //<--這裡改成你的維修人員欄位名稱
		  ,year([RECEIVEDATE]) as yy
		  , case when month([RECEIVEDATE])=1 then [維修費] else 0 end as m1
		  , case when month([RECEIVEDATE])=2 then [維修費] else 0 end as m2
		  , case when month([RECEIVEDATE])=3 then [維修費] else 0 end as m3	  
	  FROM WO //<--這裡改成你的TableName
	) t0
where t0.yy=2022
group by t0.MECHANIC_NAME
yu0901 iT邦新手 4 級 ‧ 2022-06-21 18:39:30 檢舉

感恩大大!讚

select t0.MECHANIC_NAME 維修人員, sum(t0.m1) as '1月',sum(t0.m2) as '2月',sum(t0.m3) as '3月'
from 
	(
	SELECT MECHANIC_NAME 
		  ,year([RECEIVEDATE]) as yy
		  , case when month([RECEIVEDATE])=1 then (TOTALAMOUNT) else 0 end as m1
		  , case when month([RECEIVEDATE])=2 then (TOTALAMOUNT) else 0 end as m2
		  , case when month([RECEIVEDATE])=3 then (TOTALAMOUNT) else 0 end as m3	  
	  FROM wo 
	) t0
where t0.yy=2022
group by t0.MECHANIC_NAME
2
尼克
iT邦大師 1 級 ‧ 2022-06-18 18:07:02

ROW TO COLUMN
還需要看你的row data是如何才能決定。

看更多先前的回應...收起先前的回應...
yu0901 iT邦新手 4 級 ‧ 2022-06-18 23:54:45 檢舉

感謝您的回覆sql語法還不熟悉請幫忙指引方向也行麻煩您了!
以下是撈出的資料我該如何才能呈現上面的欄位資料

select MECHANIC_NAME 維修人員, RECEIVEDATE 收件日期, TOTALAMOUNT 維修金 from WO

https://ithelp.ithome.com.tw/upload/images/20220618/20148637dBtpzUgy9q.png

selsct 人員 ,sum(1月) 至 sum(12月) form 費用
where 年='2022' and 費用='維修費'
group by 人員
匯出成Excel後..加總各月份(偷懶一下...)

尼克 iT邦大師 1 級 ‧ 2022-06-19 11:53:43 檢舉

https://ithelp.ithome.com.tw/upload/images/20220619/20011825N3ppsWYIyD.png
建議使用程式及語法,貼出來。或是SQL Fiddle

yu0901 iT邦新手 4 級 ‧ 2022-06-19 14:18:36 檢舉

@bassabnick
啊啊啊.....?
兄弟您這程度與我不相上下啊
有無更像AI人工智慧程式碼的SQL語言想法?
該怎麼寫...

@yu0901
兄弟..您不給Table與Column...要如何完整寫出來?BTW...這叫做Pseudo Code!!

年月日都在同一欄位..

yu0901 iT邦新手 4 級 ‧ 2022-06-20 09:12:27 檢舉

sorry別介意喔
是的年月日都在同一欄位'RECEIVEDATE 收件日期'
您指的是Schema嗎?
若是schema是有的
想說上面報表只需用到這幾個欄位該如何下指令完成上面的報表
我是搞系統和網路的sql還在學習中
感謝給指引

1
japhenchen
iT邦超人 1 級 ‧ 2022-06-20 10:44:08

像這種多層階式的表格,我就不會用單一查詢句來產生報表,而是用C# + LINQ + EXCEL輸出來解決,如【外勞出勤記錄表】
(點到為止,我只是想說,不要單用一個SQL就想解決問題,可以的話,活用多個語言或平台,最好)

https://ithelp.ithome.com.tw/upload/images/20220620/20117954B44h6ofqc6.png
https://ithelp.ithome.com.tw/upload/images/20220620/20117954LfgplHyDCk.png
https://ithelp.ithome.com.tw/upload/images/20220620/20117954WwfojnSl67.png

以下演示用 C# + LINQ to SQL + IIS + 輸出EXCEL(我慣用epplus你也可以找其他好用的)
https://ithelp.ithome.com.tw/upload/images/20220620/20117954lZCQ2EDmBf.png
https://ithelp.ithome.com.tw/upload/images/20220620/201179544oRV89zV0j.png

我人超級懶,不想讓同事想要找報表都來找我索要,所以會把各式各樣的報表放在公司內部網頁主機上,想要自己找,我會做索引頁讓大家自己找

像這種也是列出下包商每個月的請款明細的報表,不愛用pdf或水晶的理由就是.......很難做二次加工https://ithelp.ithome.com.tw/upload/images/20220621/20117954yBJGKBvUbj.png

我要發表回答

立即登入回答