【发布时间】:2010-11-07 09:41:01
【问题描述】:
我有 3 张桌子:
users (id, name)
currency (id, name)
accounts (id, user_id, currency_id, amount)
我想从accounts 读取数据并将其呈现在类似表格的视图中:
owner currency1 currency2 currency3
1 0 0 0
2 10 20 30
3 0 5 10
其中owner 是ID 中的accounts.owner、currency1,2,3 - (SELECT id FROM currency WHERE name = '1',etc)
我只能针对一个特定的 ID 获得这样的结果:
SELECT
SELECT amount FROM accounts WHERE currency = (SELECT id FROM currency WHERE name = 'currency1') AND owner = @user) AS [currency1],
SELECT amount FROM accounts WHERE currency = (SELECT id FROM currency WHERE name = 'currency2') AND owner = @user) AS [currency2],
SELECT amount FROM accounts WHERE currency = (SELECT id FROM currency WHERE name = 'currency2') AND owner = @user) AS [currency2]
是否可以为users 表中的每个对象获得相同的结果?不使用报告服务等。
【问题讨论】:
-
组合 (user_id,currency_id) 在帐户中是否唯一?
标签: sql sql-server sql-server-2008 tsql pivot