微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL MS Access 的嵌套子查询

如何解决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 举报,一经查实,本站将立刻删除。