iT邦幫忙

0

請問這個統計表該怎麼設計呢?

  • 分享至 

  • xImage

是這樣的這是我前幾天的發問

https://ithelp.ithome.com.tw/questions/10213589

其實我是其實我是要設計報表,畫面大致如圖

https://ithelp.ithome.com.tw/upload/images/20230714/201101323VNRjR8OYI.png

左邊日期是每個月第一天到最後一天
上面欄位比較麻煩是動態產生而不是固定寫死
我的後端已經取得相關的欄位只是是LIST
我在想是不是可以把它改成一個字串
像"AAA,BBB,CCC,DDD"然後傳到SQL裡之後做字串切割
然後再做處理
之後在建立暫存TABLE裡加上切割的字串
可能會是這樣

 CREATE TABLE #MonthTime
 (
     DayTime NVARCHAR(10)  ,					                  AAA  NVARCHAR(10),
     BBB  NVARCHAR(10),  
     CCC NVARCHAR(10),  
     DDD NVARCHAR(10),  
 );

想請問這個辦法可行嗎?
還是要用其他辦法呢?

froce iT邦大師 1 級 ‧ 2023-07-14 10:23:22 檢舉
1. 阿你項目一、二合併儲存格了,你表頭項目一、二這兩個次項是要幹嗎?
2. 你不給你的原始資料「格式」,誰知道怎麼整理比較好?
3. 字串分割法是最後的最後不得已的處理法,請參考正規化去設計資料庫。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
鬼王很慘
iT邦新手 2 級 ‧ 2023-07-14 10:16:06

依我目前的理解:

  1. 後端程式取得 AAA,BBB,CCC,DDD
  2. 傳入 DB 程式處理
  3. 建立 table
  4. 後端程式使用 table

光聽這樣就覺得有點繞路...

你的目的是「報表」,但報表也有滿多不同
格式是 Word、Excel、網頁、SQL介面?
需要即時資料?多頻繁查詢?

可能你要更明確需求
然後告訴我們你的限制是什麼
才知道怎麼設計

tenno081 iT邦研究生 4 級 ‧ 2023-07-14 10:22:23 檢舉

你好,真的就是這樣= =
也不一定要建立TABLE只是目前日期的方式我暫時用這樣來操作
上方欄位由我們C#帶入而不是寫死
我們是用一個報表軟體叫DEVEXPRESS來撰寫
查詢條件其實只要計算每一天有幾筆資料像用count計算後
得知7月1號有2筆7月2號有5筆類似這樣

2
海綿寶寶
iT邦大神 1 級 ‧ 2023-07-14 10:42:00

什麼資料都不要變
什麼程式都不要寫
先照DevExpress教學做出一份報表之後
再看有什麼要調整的地方

0
一級屠豬士
iT邦大師 1 級 ‧ 2023-07-15 08:27:31

你之前問的那段產生日期的, 也可以用這樣的方式來產生

declare @sdate date = '2023/07/01';
declare @edate date = '2023/07/31';

SELECT value, dateadd(day, value, @sdate) as oridate, format(dateadd(day, value, @sdate), N'MM月dd日', 'zh-tw') as formated
FROM GENERATE_SERIES(0, datediff(day, @sdate, @edate));

Demo

tenno081 iT邦研究生 4 級 ‧ 2023-07-15 10:33:29 檢舉

太感謝了,不過不知道是不是我的錯覺,我怎麼覺得SQL的寫法有夠多,哈哈

我要發表回答

立即登入回答