SQL Monthname在查询中显示
我是SQL新手,目前正在学习一些培训材料 我需要:显示每月收到的报价的月份和数量SQL Monthname在查询中显示,sql,Sql,我是SQL新手,目前正在学习一些培训材料 我需要:显示每月收到的报价的月份和数量 我的问题 SELECT Qdate AS MONTH ,COUNT (Quotationid)AS QUOTATIONCOUNT FROM Quotation GROUP BY Qdate ORDER BY Qdate ASC; 数据库结构 报价单(报价ID、Sname、项目代码、报价价格、Qdate、Qstatus) 你几乎是对的 下面是对Oracle的查询 SELECT to_char(Qdate, '
我的问题
SELECT Qdate AS MONTH ,COUNT (Quotationid)AS QUOTATIONCOUNT
FROM Quotation
GROUP BY Qdate
ORDER BY Qdate ASC;
数据库结构
- 报价单(报价ID、Sname、项目代码、报价价格、Qdate、Qstatus)
- 你几乎是对的
下面是对Oracle的查询
SELECT to_char(Qdate, 'MONTH') AS "MONTH" ,COUNT (Quotationid)AS QUOTATIONCOUNT
FROM Quotation
GROUP BY to_char(Qdate, 'MONTH')
ORDER BY "MONTH";
并显示月份名称:
- 在SQL Server中,您可以将
函数与DATENAME
函数结合使用DATEADD
是您的月数,这意味着您可以使用:@MonthNum
选择日期名称(月,日期添加(月,@MonthNum,0)-1)
- 在MySQL中,您可以使用:
MONTHNAME(date)
SELECT EXTRACT(YEAR FROM Qdate) AS YYYY,
EXTRACT(MONTH FROM Qdate) AS MM,
COUNT(*) AS QUOTATIONCOUNT
FROM Quotation
GROUP BY EXTRACT(YEAR FROM Qdate), EXTRACT(MONTH FROM Qdate)
ORDER BY MIN(Qdate) ASC;
所需的特定功能取决于所使用的数据库
要点:
- 除非你有很好的理由,否则你不应该考虑没有年份的月份
- 通常,您需要重复
中的表达式,尽管有些数据库允许列别名(如上例中的GROUP BY
)GROUP BY YYYY,MM
需要使用一个表达式,该表达式只包含ORDER BY
或聚合函数中的表达式(因此groupby
不起作用)ORDER BY QDate