我不确定我应该在下面的SQL查询中写什么来显示'date'列,如下所示:"month-year" - "9-2011".
SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是将数据从第一列更改为显示月份和年份,而不是仅显示月份.
Lam*_*mak 146
SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
Run Code Online (Sandbox Code Playgroud)
或者正如@ 40-Love所提到的,你可以使用前导零投射:
GROUP BY
CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2)
Run Code Online (Sandbox Code Playgroud)
Dum*_*dan 12
我猜是MS SQL,因为它看起来像MS SQL语法.
所以你应该在组行中输入与select ex相同的东西:
Select MONTH(date)+'-'+YEAR(date), ....
...
...
...
group by MONTH(date)+'-'+YEAR(date)
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以尝试乘法来调整年份和月份,使它们成为一个数字。根据我的测试,这比format(date,'yyyy.MM'). 我更喜欢在月份之前进行排序。从 MS SQL Server Express 版本 12.0 创建的代码。
SELECT (YEAR(Date) * 100) + MONTH(Date) AS yyyyMM
FROM [Order]
...
GROUP BY (YEAR(Date) * 100) + MONTH(Date)
ORDER BY yyyyMM
Run Code Online (Sandbox Code Playgroud)
SQL Server 2012 以上,我更喜欢使用 format() 函数,更简化。
SELECT format(date,'MM.yyyy') AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY format(date,'MM.yyyy')
Run Code Online (Sandbox Code Playgroud)
小智 6
如果我理解正确的话.为了按要求对结果进行分组,Group By子句需要与select语句具有相同的表达式.
GROUP BY MONTH(date) + '.' + YEAR(date)
Run Code Online (Sandbox Code Playgroud)
要将日期显示为"月 - 日"格式,请更改"." ' - '完整的语法将是这样的.
SELECT MONTH(date) + '-' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS
SumaMarketing, SUM(revenue) AS SumaZarada
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date) + '.' + YEAR(date)
Run Code Online (Sandbox Code Playgroud)
对于 mariaDB,您可以:
SELECT DATE_FORMAT(date, '%m-%Y')
FROM [Order]
GROUP BY
DATE_FORMAT(date, '%m-%Y')
Run Code Online (Sandbox Code Playgroud)
链接: https: //mariadb.com/kb/en/library/date_format/
Yet another alternative:
Select FORMAT(date,'MM.yy')
...
...
group by FORMAT(date,'MM.yy')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
199756 次 |
| 最近记录: |