Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 联接子选择语句_Sql_Sql Server_Select_Join - Fatal编程技术网

Sql 联接子选择语句

Sql 联接子选择语句,sql,sql-server,select,join,Sql,Sql Server,Select,Join,我在计算如何加入sub-select语句时遇到问题 目的是检索父/子层次结构中链接的所有销售的总和。每行应显示层次结构中总销售额的总和,而不是唯一的子销售额 我可以很容易地分别获得所需的结果,但我正在尝试找出如何在单个查询中获得这些数据 预期成果: AccountID AccountName REPLOGIN TL_AccountID TL_AccountName SumGross 123456 Child Company A Salesrep

我在计算如何加入sub-select语句时遇到问题

目的是检索父/子层次结构中链接的所有销售的总和。每行应显示层次结构中总销售额的总和,而不是唯一的子销售额

我可以很容易地分别获得所需的结果,但我正在尝试找出如何在单个查询中获得这些数据

预期成果:

AccountID AccountName REPLOGIN TL_AccountID TL_AccountName SumGross 123456 Child Company A Salesrep A 123654 Parent Company X 1500 123456 Child Company B Salesrep C 123654 Parent Company X 1500
您可以尝试使用SQL用户定义函数,该函数将接受输入参数并返回
表值结果集,查询的下半部分具有所需的值,可以连接到上面的结果集

感谢您使用了“Snippet”选项,但这是针对html/js/css问题的。在你的问题中最好使用常规的代码块(旁注:如果你编辑你的问题来清理一下格式(使用预览!),你会得到更好的答案)。如果你想用一把小提琴来补充这个问题,这确实很好,但是对于sql,你必须使用一个非现场工具,比如。谢谢Jeroen。进行了调整。如果您已经单独获得结果,您可以轻松地将它们与UNION ALL组合。
SELECT
    dbo.Account.AccountID,
    dbo.Account.AccountName,
    dbo_Rep_Employee.Login AS REPLOGIN,
    TL_Account.AccountID AS TL_AccountID, 
    TL_Account.AccountName AS TL_AccountName, 
    TL_Address.Country AS TL_Country,

------------------------------------------  
-- HOW TO JOIN THE BELOW????? --
------------------------------------------  

(SELECT SUM(Orders.GrossAmount) AS SumGross

FROM    Position 
                INNER JOIN Account ON Position.PositionID = Account.PositionID 
                INNER JOIN Employee ON Position.EmployeeID = Employee.EmployeeID 
                INNER JOIN Address ON Account.AddressID = Address.AddressID 
                INNER JOIN Account AS TL_Account ON Account.TopPurchasingAccountID = TL_Account.AccountID 
                INNER JOIN Address AS TL_Address ON TL_Account.AddressID = TL_Address.AddressID 
                RIGHT OUTER JOIN Orders AS Orders ON Account.AccountID = Orders.AccountID 
                LEFT OUTER JOIN PriceList AS PriceList ON Orders.PriceListID = PriceList.PriceListID

WHERE               
                (Orders.SalesChannel LIKE '%NL.%' OR Orders.SalesChannel LIKE '%.nl%') AND 
                (Orders.DateDeleted IS NULL) AND 
                (Orders.OrderDate > DATEADD(MM, - 13, CONVERT(DATE, DATEADD(mm, DATEDIFF(MM, 0, DATEADD(DD, - 3, CURRENT_TIMESTAMP)) + 1, 0)))) AND 
                (UPPER(RTRIM(Orders.OrderStatus)) IN ('VERIFIED', 'VERIFIED - MANUAL', 'SENT TO FINANCE', 'REJECTED', 'RE-SUBMITTED', 'PAID IN FULL', 'INVOICED - MANUAL', 'INVOICED', 'FINANCE HOLD', 'CLOSED--EU CREDIT', 'CLOSED - EU CREDIT', 'VERIFIED BY FINANCE', 'Pending Approval', 'Closed--Zero Value'))) AS SumGross
------------------------------------------  
-- HOW TO JOIN THE ABOVE????? --
------------------------------------------  


FROM
    dbo.Account INNER JOIN dbo.AccountPosition ON (dbo.Account.AccountID=dbo.AccountPosition.AccountID)
    INNER JOIN dbo.Position  dbo_Rep_Position ON (dbo.AccountPosition.PositionID=dbo_Rep_Position.PositionID)
    INNER JOIN dbo.Employee  dbo_Rep_Employee ON (dbo_Rep_Position.EmployeeID=dbo_Rep_Employee.EmployeeID)
    INNER JOIN dbo.Employee  dbo_Rep_Manager ON (dbo_Rep_Employee.ManagerEmployeeID=dbo_Rep_Manager.EmployeeID)
    INNER JOIN dbo.Employee  dbo_Modified_Employee ON (dbo_Modified_Employee.EmployeeID=dbo.AccountPosition.ModifyEmployeeID)
    LEFT JOIN Account AS TL_Account ON Account.TopPurchasingAccountID = TL_Account.AccountID 
    INNER JOIN Address AS TL_Address ON TL_Account.AddressID = TL_Address.AddressID 
    INNER JOIN  Orders ON Account.AccountID = Orders.AccountID

WHERE
    dbo.Account.AccountID  IN  ( N'1-9CLBQK') 
    AND
    dbo.AccountPosition.PrimarySalesRep  IN  ( N'Y'  )
    AND
    dbo.AccountPosition.DateDeleted  Is Null  

    GROUP BY
    dbo.AccountPosition.DateModified,
    dbo_Modified_Employee.login,
    dbo.Account.AccountID,
    dbo.Account.AccountName,
    dbo_Rep_Employee.Login,
    dbo.Account.DateCreated,
    TL_Account.AccountID, 
    TL_Account.AccountName,
    TL_Address.Country