SQL QUERY - 从头开始过滤日期
Posted
技术标签:
【中文标题】SQL QUERY - 从头开始过滤日期【英文标题】:SQL QUERY - Filter date from the beginning 【发布时间】:2018-11-13 05:23:33 【问题描述】:如何编写将前几天/几年的金额相加的 SQL 查询。从一开始就喜欢。
场景我想计算商店从开业那天起的累计销售额。
例子
SELECT SUM(AMOUNT)
FROM TransactionTable
WHERE TransactionDate = ???
我的计划是查询该表并获取最旧的交易日期记录,然后我将在WHERE
条件中使用它。您认为这是最好的解决方案吗?
【问题讨论】:
请提供样本数据和您预期的结果。你使用的是哪个版本的 SQL Server? 【参考方案1】:您可以在下面尝试使用having min(transaction)
,它将为您提供交易首次开始的日期
select sum (amt) from
(
SELECT SUM(AMOUNT) as amt from TransactionTable
group by TransactionDate
having TransactionDate between min(TransactionDate) and getdate()
)A
【讨论】:
【参考方案2】:要计算商店从开业之日起的累计销售额,您可以使用 SUM
和 OVER
子句
SELECT TransactionDate, SUM(AMOUNT) OVER (ORDER BY TransactionDate) AS AccumulatedSales
FROM TransactionTable
【讨论】:
【参考方案3】:使用group by
TransactionDate
SELECT convert(date,TransactionDate), SUM(AMOUNT) from TransactionTable
group by convert(date,TransactionDate)
【讨论】:
以上是关于SQL QUERY - 从头开始过滤日期的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 dojox.jsonPath.query 过滤/查询日期