我可以轻松获得本月和上个月的总销售额。
SELECT ‘This Mount’, SUM(Price) FROM Sales
WHERE EXTRACT(MONTH FROM OrderDate) = EXTRACT(MONTH FROM CURRENT_DATE)
AND EXTRACT(YEAR FROM OrderDate) = EXTRACT(YEAR FROM CURRENT_DATE)
Union All
SELECT ‘Previous Month’, SUM(Price) FROM Sales
WHERE EXTRACT(MONTH FROM OrderDate) = EXTRACT(MONTH FROM CURRENT_DATE)
AND EXTRACT(YEAR FROM OrderDate) = EXTRACT(YEAR FROM CURRENT_DATE)
我想获得本季度和上一季度的总销售额。
使用 MS-SQL 从日期中获取季度非常容易,如下所示:
SELECT DATEPART(QUARTER, @date)
我如何使用 Firebird 做到这一点?
最佳答案
将 DECODE 函数与 EXTRACT 结合使用:
SELECT
DECODE(EXTRACT(MONTH FROM <date_field>),
1, 'I',
2, 'I',
3, 'I',
4, 'II',
5, 'II',
6, 'II',
7, 'III',
8, 'III',
9, 'III',
'IV')
FROM
<some_table>
或者只是
SELECT
(EXTRACT(MONTH FROM <date_field>) - 1) / 3 + 1
FROM
<some_table>
关于date - 如何从 Firebird SQL 中的日期获取季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725897/