我想創建一個使用SQL服務器創建兩個表之間的表的表。關於這個棘手的部分,我沒有在其他職位發現的是一個表是單一的「賬戶」數據象下面這樣:關鍵字段的1到3關係的表之間的區別
TABLE A
Account Security ID Sec Name Shares
------- ----------- --------- ------
1 Sec1 Security1 20000
1 Sec2 Security2 50000
1 Sec3 Security3 10000
1 Sec4 Security4 35000
而且,我想比較這對數據是一組「賬戶(在3本實施例中)「:
TABLE B
Parent_acct Account Security ID Sec Name Shares
----------- ------- ----------- --------- ------
Clone 200 Sec1 Security1 15000
Clone 200 Sec3 Security3 22000
Clone 200 Sec4 Security4 8000
Clone 300 Sec1 Security1 11000
Clone 300 Sec3 Security3 8500
Clone 300 Sec4 Security4 11200
Clone 400 Sec1 Security1 16000
Clone 400 Sec2 Security2 7800
Clone 400 Sec3 Security3 3500
我需要一些SQL來定位安全ID的包括在從表B缺失的每個帳戶
例如表A,鑑於上面的兩個表,我會期望下面的輸出告訴我缺少的安全性和acco不要從它丟失。
希望這是有道理的。
我已經使用遊標查詢來生成我需要的數據,但是,我試圖創建一些可以輕鬆應用到Crystal Reports的東西,並且遊標查詢對此沒有用處。
在此先感謝您看看這個。
Output
Account Security ID Sec Name
(From B) (From A) (From A)
------- ----------- ---------
200 Sec2 Security2
300 Sec2 Security2
400 Sec4 Security4
我到目前爲止查詢:
select * FROM
(SELECT * from
(select p.acct_cd, s.ext_sec_id, s.sec_name, p.qty_sod
from csm_Security s, cs_position p
where s.sec_id = p.sec_id
and p.acct_cd = '329'
and s.sec_typ_cd in ('COM','FSTK','ADR')) A
cross join
(select distinct child_acct_cd
cs_fund_config fc
where fc.parent_acct_cd IN ('clone_as')) B) AAccounts,
(select fc.child_acct_cd, s.ext_sec_id, s.sec_name, p.qty_sod
from csm_Security s, cs_position p, cs_fund_config fc
where s.sec_id = p.sec_id
and fc.child_acct_cd = p.acct_cd
and fc.parent_acct_cd IN ('clone_as')
and s.sec_typ_cd in ('COM','FSTK','ADR')) BAccounts
where AAccounts.ext_sec_id *= BAccounts.ext_sec_id
and AAccounts.child_acct_cd *= BAccounts.child_acct_cd
在您的示例數據中,表A將其所有帳戶設置爲1.是否是錯誤?看起來應該是200或300或400.順便說一句,請嘗試我的答案。 – daniloquio
這不是一個錯誤。我想你可以說這是一個模特賬戶。比較表B中三個賬戶中賬戶1的頭寸。 –
我現在明白了;我做了一個糟糕的假設,所以我刪除了我的答案。 – daniloquio