大家好
目前公司在新舊系統轉換,中間需要資料轉換,但我的SQL很菜,想請問大家幫忙解答或是想幫忙提供可能可以往那個方向查詢可以找得到解決方式? 非常感謝~~
問題一:
新舊資料格式如下圖,舊系統資料格式是把年月的起迄在同一筆資料中,但新系統所需的資料庫資料格式需要變成把年月各拆成一筆獨立資料,想請問求解SQL語法要如何可以判斷讓不同年月時拆成多筆資料?
問題二:
舊系統資料中有用tag檢視表的方式將所有資料都放在同一張資料表的同一欄位中,如下圖所示,想請問如果我要取251的$b後面的手機號碼(0912345456),想請問要如何用SQL取得?
問題一 用 Union 處理~
select 起始年度,起始月份,資料1~n
union
select 結束年度,結束月份,資料1~n
問題二 用 SubString 處理~
您好,目前問題一有用您說的Union處理,有成功將舊系統資料格式中前兩種狀況(如下圖)拆成單獨一筆~~感謝您;
不好意思,想再請問因為最後一筆有跨年月的情況,這樣需要產生110年12月的資料(如下圖),想請問要如何去產生? 我目前想到的是用條件判斷後,然後符合條件就把原本一筆資料的年份或月份去+1後產生資料,但目前試過還是無法產生出來...
但因為在舊系統資料格式有跨年月的狀況不太一樣像是如下圖不是只有差1個年份或月份的情況...也想請問這要用那個語法或是方向處理?
這情況~只能人工調整了~因為新舊資料表是不一樣的~
如果舊資料不多的話~就新增幾筆連續資料處理了~
因為不曉得你的新資料表是要配合哪個功能之類的~
select * from 舊資料表 a full join 新資料表 b on
a.起始年度=b.起始年度 and a.起始月份=b.起始月份 and a.資料1~n=b.資料1~n