Sql server 2005 Select子句中的多个子查询

Sql server 2005 Select子句中的多个子查询,sql-server-2005,subquery,Sql Server 2005,Subquery,我有多个select语句,我想以某种方式将它们组合成一个结果集。我希望每个子查询都是一列。共有5条语句引用了3个表。他们都有一个日期字段,我想加入他们。下面是我的一些代码的示例: SELECT sum([Account Current Balance]) AS 'Other Deposits' FROM [FINANCE].[dbo].[BICDATAd] WHERE [Account Type Code] < '100' AND [Account Type Code] Not like

我有多个select语句,我想以某种方式将它们组合成一个结果集。我希望每个子查询都是一列。共有5条语句引用了3个表。他们都有一个日期字段,我想加入他们。下面是我的一些代码的示例:

SELECT sum([Account Current Balance]) AS 'Other Deposits'
FROM [FINANCE].[dbo].[BICDATAd]
WHERE [Account Type Code] < '100' AND [Account Type Code] Not like '024' and [Account Type Code] Not Like '031'
GROUP BY [Full Date]


SELECT sum([SumOfMARKET_VALUE]) AS 'Sweep Balance'
FROM [Finance].[dbo].[SQLFDIC]
GROUP BY [As Of Date]

SELECT sum([MARKET_VALUE]) AS 'Money Market + TIPS'
FROM [FINANCE].[dbo].[SQLFDICpledge]
WHERE (SEC_TYPE LIKE '10%' OR SEC_TYPE LIKE '30%') AND ACCOUNT_NUMBER = '1040004859'
GROUP BY [As of Date]
选择金额([账户当前余额])作为“其他存款”
来自[财务].[dbo].[BICDATA]
其中,[账户类型代码]<'100'和[账户类型代码]与'024'不同,[账户类型代码]与'031'不同
分组依据[完整日期]
选择总和([SumOfMARKET_VALUE])作为“扫描余额”
来自[Finance].[dbo].[SQLFDIC]
分组依据[截止日期]
选择总和([市场价值])作为“货币市场+提示”
来自[FINANCE].[dbo].[SqlFdic质押]
其中(类似于“10%”的SEC类型或类似于“30%”的SEC类型)和账号=“1040004859”
分组依据[截止日期]
输出列将是日期、其他存款、扫描余额、货币市场和提示


此外,如果有其他方法可以做到这一点,我欢迎所有的建议。我对SQL相当陌生。

像这样的东西可能就足够了:

SELECT 
    coalesce(T1.[theDate], T2.[theDate], T3.[theDate]) as [Date],
    [Other Deposits],
    [Sweep Balance],
    [Money Market + TIPS]
from 
(
    SELECT sum([Account Current Balance]) AS 'Other Deposits', [Full Date] as theDate
    FROM [FINANCE].[dbo].[BICDATAd]
    WHERE [Account Type Code] < '100' AND [Account Type Code] Not like '024' and [Account Type Code] Not Like '031'
    GROUP BY [Full Date]
) T1
full outer join
(
    SELECT sum([SumOfMARKET_VALUE]) AS 'Sweep Balance', [As Of Date] as theDate
    FROM [Finance].[dbo].[SQLFDIC]
    GROUP BY [As Of Date]
) T2 on T1.theDate = T2.theDate
full outer join
(
    SELECT sum([MARKET_VALUE]) AS 'Money Market + TIPS', [As of Date] as theDate
    FROM [FINANCE].[dbo].[SQLFDICpledge]
    WHERE (SEC_TYPE LIKE '10%' OR SEC_TYPE LIKE '30%') AND ACCOUNT_NUMBER = '1040004859'
    GROUP BY [As of Date]
) T3 on T2.theDate = T3.theDate
选择
合并(T1.[theDate],T2.[theDate],T3.[theDate])为[日期],
[其他存款],
[横扫平衡],
[货币市场+提示]
从…起
(
选择金额([账户当前余额])作为“其他存款”,选择[完整日期]作为日期
来自[财务].[dbo].[BICDATA]
其中,[账户类型代码]<'100'和[账户类型代码]与'024'不同,[账户类型代码]与'031'不同
分组依据[完整日期]
)T1
完全外接
(
选择总和([SumOfMARKET_VALUE])作为“扫描余额”,选择[Ast Of Date]作为日期
来自[Finance].[dbo].[SQLFDIC]
分组依据[截止日期]
)T1.theDate上的T2=T2.theDate
完全外接
(
选择金额([市场价值])作为“货币市场+提示”,选择[截止日期]作为日期
来自[FINANCE].[dbo].[SqlFdic质押]
其中(类似于“10%”的SEC类型或类似于“30%”的SEC类型)和账号=“1040004859”
分组依据[截止日期]
)T2.theDate上的T3=T3.theDate

谢谢您的帮助。这正是我想要的。