如何将几个不同表中的记录拉入SQL Server 2008 R2中的单个视图?

我正在尝试创建一种“摘要”视图,其中值应从几个不同的表中拉出([Account],[Branch],[Customer],[Employee],[Transaction],[FlaggedTrans])。 由于我无法在视图中执行大量SELECT语句,因此我尝试使用INNER JOIN来完成任务,这是我的问题所在。 这是我到目前为止所得到的:
CREATE VIEW Summary
AS
    SELECT NEWID() AS Summary_Id,
    COUNT(C.Customer_Id) AS CustCount,
    COUNT(A.Account_Id) AS AcctCount,
    COUNT(T.Transaction_Id) AS TransCount,
    COUNT(B.Branch_Id) AS BranchCount,
    COUNT(E.Employee_Id) AS EmplCount,
    CAST(SUM(A.Balance) AS INT) AS BalTotal,
    COUNT(F.FlaggedTrans_Id) AS FlagCount
    FROM dbo.Account A INNER JOIN
    dbo.Customer C ON A.Customer_Id = C.Customer_Id INNER JOIN
    dbo.Employee E ON A.Employee_Id = E.Employee_Id INNER JOIN
    dbo.[Transaction] T ON A.Account_Id = T.Account_Id INNER JOIN
    dbo.FlaggedTrans F ON E.Employee_Id = F.Employee_Id CROSS JOIN
    dbo.Branch B
似乎足够逻辑,但它导致所有值都返回NULL或0.我做错了什么?     
已邀请:
我将首先删除CROSS JOIN,如果需要,将其放在where子句中(例如WHERE My_ID IN(从Branch中选择ID)。 此外,您不必连接表,而是逐个选择它们作为另一个选项。这是一些伪代码:
SELECT
(SELECT COUNT(thisfield) FROM Thistable) as ThisCnt,
(SELECT COUNT(thatfield) FROM Thattable) as ThatCnt,
[etc.]
    
如果要将视图构建为一系列选择,而这些选择不相关,则可以使用UNION ALL。     
我不确定这里有什么问题,但我可以建议你逐个关闭你的内部联接,并运行你的选择查询,这样你就可以知道哪个内连接导致问题     

要回复问题请先登录注册