我们在名为"bus_date"
的表上有一个名为"wmw_st_bte"
的日期列名称。运行SQL查询时,日期格式如下所示
(select bus_date from wmw_st_bte bet)
:“28 / JUN / 04”。我们希望从该表中按月汇总总销售额。所以结果看起来应该是这样的。
Month: January 2004 or JAN 04 Sales: 10000
Month: February 2004 or FEB 04 Sales: 15000
所以基本上我们需要正确的查询来从日期列“bus_date”获取汇总的月份名称。有人可以帮忙吗?
我们尝试了以下查询,但它在月份列下提供了以下格式而不是月份名称:
月:1销售额:10000
月:2销售额:20000
我知道如何获得月份名称和年份吗?
我们使用的查询:
SELECT
EXTRACT(MONTH FROM bus_date) AS month
, SUM (sales) AS sales
FROM wmw_st_bte
GROUP BY
EXTRACT(MONTH FROM bus_date)
ORDER BY
EXTRACT(MONTH FROM bus_date)
答案 0 :(得分:0)
我认为你需要像
这样的东西select EXTRACT( YEAR_MONTH FROM bus_date ) ,
sum(sales) as sales
from wmw_st_bte
group by EXTRACT( YEAR_MONTH FROM bus_date )
答案 1 :(得分:0)
这里有一个想法如何查询它。 您可以这样尝试(使用SQL SERVER)
SELECT SUM(Sales) Sales,cMonthYear
FROM (
SELECT Sales,(DATENAME(month,bus_date) + ' ' +CAST(YEAR(bus_date) AS VARCHAR(4))) cMonthYear,
MONTH(bus_date) nMonth,YEAR(bus_date) nYear
FROM wmw_st_bte
)A
GROUP BY cMonthYear,nMonth,nYear
ORDER BY nYear,nMonth
我在初始/内部SELECT语句中包含了月份和年份,因此我可以对最终结果进行排序/排序。
如果要使用日期范围[开始日期]和[结束日期]查询它。您可以像这样在内部查询上插入WHERE子句。
SELECT SUM(Sales) Sales,cMonthYear
FROM (
SELECT Sales,(DATENAME(month,bus_date) + ' ' +CAST(YEAR(bus_date) AS VARCHAR(4))) cMonthYear,
MONTH(bus_date) nMonth,YEAR(bus_date) nYear
FROM wmw_st_bte
WHERE bus_date BETWEEN [Start Date] AND [End Date]
)A
GROUP BY cMonthYear,nMonth,nYear
ORDER BY nYear,nMonth
答案 2 :(得分:0)
我能够通过放置to_char函数来解决问题:
选择 to_char(bus_date,'MON-YYYY')AS month_year ,SUM(销售)AS销售
FROM wmw_st_bte
GROUP BY bus_date
ORDER BY bus_date