繁体   English   中英

SQL日期范围与金额

[英]Sql date range with amount

我想以帐户对帐单格式排列数据,但是我完全不知道编写SQL命令,尤其是日期范围。

表A

Creditors name       Invoice No         Due date          Outstanding Amt
Company A            A001              1/8/2014            1500
Company B            A002              1/6/2014             300
Company B            A003              1/7/2014             900
Company B            A004              5/7/2014              50        
Company c            A005              31/12/2014           200

结果,声明日期:11/8/14

Creditors name    0-30 Days    31-60 Days   61-90 Days   Over 90 Days   Amt Due        
Company A          1500           0           0              0           1500
Company B             0           950          300            0           1250
Company c             0            0           0             200           200

请帮忙,谢谢

您可以使用下面提到的查询获取记录。

SELECT *
FROM periods
WHERE range_start <= @check_period_end
      AND range_end >= @check_period_start

PS更新@check_period_end和@check_period_start并在单引号中加上相关的开始和结束日期。

您可以通过此查询获取示例中的期间

SELECT DATEDIFF(day,'2008-06-05','2008-08-05')

现在,如果您只想通过单个查询使输出表像示例中那样,那就太复杂了。首先尝试将视图与上述查询一起使用,然后获取数据...尝试执行此操作,如果遇到任何错误,然后询问这里..至少先尝试..

我不确定...我认为此声明有效(未经测试)

SELECT T01.[Creditors name],
(SELECT SUM() FROM TABLEA T02 WHERE DATEDIFF(day,T02.[Due date], GetDate())) BETWEEN -1 AND 31 AND T01.[Creditors name] = T02.[Creditors name])  AS [0-30 Days],
(SELECT SUM() FROM TABLEA T03 WHERE DATEDIFF(day,T02.[Due date], GetDate())) BETWEEN -30 AND 61 AND T01.[Creditors name] = T03.[Creditors name]) AS [31-60 Days],
(SELECT SUM() FROM TABLEA T04 WHERE DATEDIFF(day,T02.[Due date], GetDate())) BETWEEN -60 AND 91 AND T01.[Creditors name] = T04.[Creditors name]) AS [61-90 Days],
(SELECT SUM() FROM TABLEA T05 WHERE DATEDIFF(day,T02.[Due date], GetDate())) > 90 AND T01.[Creditors name] = T05.[Creditors name]) AS [Over 90 Days],
SUM(T01.[Outstanding Amt]) AS [Amt Due]
FROM TABLEA T01
GROUP BY T01.[Creditors name]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM