Mysql 编写一个查询,返回按月和按年的销售额之和-SQL

Mysql 编写一个查询,返回按月和按年的销售额之和-SQL,mysql,Mysql,我一直坚持把销售月份加在一起,而不是单独列出来。问题是: 编写一个按月份和年份返回销售额总和的查询。只有两列返回“月-年”和“销售额”。用一个美元符号和两个小数位格式化销售。从高到低列出销售额 我的问题是: SELECT date_format(salesdate, '%M,%Y') AS 'Month Year', CONCAT('$', salesamt) AS 'Sales' FROM sales GROUP BY invoiceid ORDER BY salesamt DESC; 我很

我一直坚持把销售月份加在一起,而不是单独列出来。问题是:

编写一个按月份和年份返回销售额总和的查询。只有两列返回“月-年”和“销售额”。用一个美元符号和两个小数位格式化销售。从高到低列出销售额

我的问题是:

SELECT date_format(salesdate, '%M,%Y') AS 'Month Year', CONCAT('$', salesamt) AS 'Sales'
FROM sales
GROUP BY invoiceid
ORDER BY salesamt DESC;
我很确定GROUPBY是个问题,但其他专栏都不起作用。任何帮助都将不胜感激

表:

CREATE TABLE sales (
  invoiceid INT PRIMARY KEY, 
  depid INT, 
  salesamt DECIMAL(10,2), 
  salesdate DATETIME
);
价值观:

insert into sales values (101, 2, 2111.02, '20160102');
insert into sales values (102, 2, 421.00, '20160202');
insert into sales values (103, 2, 675.00, '20160202');
insert into sales values (104, 2, 4355.00, '20160302');
insert into sales values (105, 2, 975.00, '20160304');
insert into sales values (106, 2, 1021.00, '20160402');
insert into sales values (107, 2, 2106.00, '20160425');
insert into sales values (108, 2, 2799.81, '20160501');
insert into sales values (109, 2, 4335.75, '20160502');
insert into sales values (110, 2, 12006.00, '20160521');
insert into sales values (111, 2, 5220.00, '20160602');
insert into sales values (112, 2, 7198.02, '20160618');
insert into sales values (113, 2, 4795.00, '20160625');
insert into sales values (114, 2, 5341.00, '20160706');
insert into sales values (115, 2, 5795.00, '20160718');
insert into sales values (116, 2, 6400.00, '20160725');
insert into sales values (117, 2, 14795.00, '20160812');
insert into sales values (118, 2, 43395.00, '20160825');
insert into sales values (119, 2, 47595.00, '20160914');
insert into sales values (120, 2, 46795.00, '20160930');
insert into sales values (121, 2, 6223.00, '20161010');
insert into sales values (122, 2, 7702.00, '20161012');
insert into sales values (123, 2, 11292.00, '20161107');
insert into sales values (124, 2, 33211.00, '20161126');
insert into sales values (125, 2, 16430.00, '20161206');
insert into sales values (126, 2, 87010.00, '20161221');
insert into sales values (127, 2, 2111.02, '20170102');
insert into sales values (128, 2, 421.00, '20170202');
insert into sales values (129, 2, 675.00, '20170202');
insert into sales values (130, 2, 4355.00, '20170302');
insert into sales values (131, 2, 975.00, '20170304');
insert into sales values (132, 2, 1021.00, '20170402');
insert into sales values (133, 2, 2106.00, '20170425');
insert into sales values (134, 2, 2799.81, '20170501');
insert into sales values (135, 2, 4335.75, '20170502');
insert into sales values (136, 2, 12006.00, '20170521');
insert into sales values (137, 2, 5220.00, '20170602');
insert into sales values (138, 2, 7198.02, '20170618');
insert into sales values (139, 2, 4795.00, '20170625');
insert into sales values (140, 2, 5341.00, '20170706');
insert into sales values (141, 2, 7004.00, '20170718');
insert into sales values (142, 2, 14991.00, '20170725');
insert into sales values (143, 2, 34076.00, '20170812');
insert into sales values (144, 2, 47950.00, '20170825');
insert into sales values (145, 2, 40795.00, '20170914');
insert into sales values (146, 2, 41795.00, '20170930');
insert into sales values (147, 2, 47295.00, '20171010');
insert into sales values (148, 2, 47395.00, '20171012');
insert into sales values (149, 2, 41795.00, '20171107');
insert into sales values (150, 2, 47895.00, '20161126');
insert into sales values (151, 2, 87666.00, '20161206');
insert into sales values (152, 2, 9401.00, '20161221');
试试这个

select concat('$',sum(a.Sales)) sum, a.Month_Year
from
(SELECT date_format(salesdate, '%M,%Y') AS 'Month_Year', salesamt AS 'Sales' FROM sales) a
group by a.Month_Year
order by sum(a.Sales) desc;
关于您的查询

我认为invoiceId是唯一的


这就是为什么你的GroupBy毫无用处的原因。

MySQL!=SQL Server-请更正您的标记。