【发布时间】:2018-02-18 19:44:55
【问题描述】:
我正在尝试比较当前月份和上个月之间的总金额。当新的一年出现时,问题就来了。
SELECT
currYear.orderyear, currYear.ordermonth, currYear.totalamount,
prevYear.totalamount
FROM
(SELECT
SUM(val) AS totalamount,
YEAR(orderdate) AS orderyear,
MONTH(orderdate) AS ordermonth
FROM
Sales.OrderValues
GROUP BY
YEAR(orderdate), MONTH(orderdate)
) AS currYear
LEFT JOIN
(SELECT
SUM(val) AS totalamount,
YEAR(orderdate) AS orderyear,
MONTH(orderdate) AS ordermonth
FROM
Sales.OrderValues
GROUP BY
YEAR(orderdate), MONTH(orderdate)
) AS prevYear ON currYear.orderyear = prevYear.orderyear
AND currYear.ordermonth = prevYear.ordermonth + 1
WHERE
currYear.orderyear = '2006'
OR currYear.orderyear = '2007'
ORDER BY
currYear.orderyear, currYear.ordermonth
【问题讨论】:
标签: sql sql-server