如何解决SQL MS Access 的嵌套子查询
SELECT [doc type],[customer number],COUNT([customer number]) As CountCustomerNumber,SUM([SumOpenAmount]) As TotalOpenAmount
FROM
(SELECT d.[customer number] & d.[membership number] AS CustMemb,d.[customer number],agg.[doc type],SUM(agg.[TotalSubOpenAmount]) AS SumOpenAmount
FROM (SELECT [doc type],SUM([open amount]) AS TotalSubOpenAmount
FROM data
WHERE [doc type] = 'RU'
GROUP BY [doc type],[customer number]
) agg
INNER JOIN [data] d
ON d.[customer number] = agg.[customer number]
GROUP BY d.[customer number] & d.[membership number],agg.[doc type]
) AS sub
GROUP BY [doc type],[customer number]
HAVING COUNT([customer number]) = 1
我需要添加:
对未结金额 > 0 的未结金额求和,然后对未结金额
解决方法
尝试条件求和:
SELECT [doc type],[customer number],COUNT([customer number]) As CountCustomerNumber,SUM(IIF([open_amount]>0,[open_amount],0)) AS sum_open_amount_pos,SUM(IIF([open_amount]<0,0)) As sum_open_amount_neg
FROM
(SELECT d.[customer number] & d.[membership number] AS CustMemb,d.[customer number],agg.[doc type],SUM(agg.[TotalSubOpenAmount]) AS SumOpenAmount
FROM (SELECT [doc type],SUM([open amount]) AS TotalSubOpenAmount
FROM data
WHERE [doc type] = 'RU'
GROUP BY [doc type],[customer number]
) agg
INNER JOIN [data] d
ON d.[customer number] = agg.[customer number]
GROUP BY d.[customer number] & d.[membership number],agg.[doc type]
) AS sub
GROUP BY [doc type],[customer number]
HAVING COUNT([customer number]) = 1
您需要先获取未结金额字段。
SELECT [doc type],0)) As sum_open_amount_neg
FROM
(
-- This is the part in which the field open_amount should be fetched.
) AS sub
GROUP BY [doc type],[customer number]
HAVING COUNT([customer number]) = 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。