我正在處理未歸一化的數據庫,因爲我沒有權限,所以無法歸一化。問題是從一個表插入到另一個表
我有兩個表
- Gl_Account
- 試算表
表的結構就像
Gl_Account(空表或與一些舊數據)
loc | gl_acct | HMISTOTAL
-------------------------------
| |
-------------------------------
試算表
loc | g1101 | g1102 | g1103
----------------------------------------
1400 | 20 | 30 | 0
----------------------------------------
1500 | 10 | 0 | 40
----------------------------------------
現在我想做的是
獲取該記錄不在Gl_Account表從試算表與各GL_acct編號分別下的金額gXXXX (在試算表中)不爲零
讓我來舉個例子來解釋一下。保持上表記我要填寫的表格GL_Account作爲
GL_Account
loc | gl_acct | HMISTOTAL
---------------------------------------
1400 | 1101 | 20
---------------------------------------
1400 | 1102 | 30
---------------------------------------
1500 | 1101 | 10
---------------------------------------
1500 | 1103 | 40
---------------------------------------
我已經嘗試此查詢,但它僅是進入gl_accountt表捕獲的第一條記錄。我暫時忽略了部分金額......但它是必需的。
insert into Gl_Account (loc,gl_acct,HMISTOTAL)
select * from (
select a.loc,
CASE
WHEN a.G1101 <> 0 THEN '1101'
WHEN a.G1102 <> 0 THEN '1102'
WHEN a.G1104 <> 0 THEN '1104'
WHEN a.G1151 <> 0 THEN '1151'
END AS gl_Acct
'0' as HMISTOTAL
FROM trialBalance a where NOT EXISTS
(SELECT 1 from GL_Account b WHERE b.loc = a.loc)) ab
在此先感謝。
怎麼可能有我錯過了這樣一個簡單的方法..感謝 –