关于#SQL#的问题,如何解决?

SQL问题

img

1)查询订单申请时间在2020年4月份和5月份,各申请人的合计订单总额,结果以订单总额降序排序 2)去除英国、法国的订单,查询各年月的订单申请总额 mysql数据库
订单表的建表语句:

CREATE TABLE `订单`  (
  `订单ID` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `订单申请时间` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `订单申请人` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `订单收货国家` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of 订单
-- ----------------------------
INSERT INTO `订单` VALUES ('1001', '2020-04-01 16:58:28.000', 'A', '中国');
INSERT INTO `订单` VALUES ('1002', '2020-05-14 16:58:38.000', 'A', '美国');
INSERT INTO `订单` VALUES ('1003', '2020-05-20 16:58:47.000', 'B', '英国');
INSERT INTO `订单` VALUES ('1004', '2020-06-10 16:58:53.000', 'C', '中国');
INSERT INTO `订单` VALUES ('1005', '2020-04-23 16:58:58.000', 'D', '法国');
INSERT INTO `订单` VALUES ('1006', '2020-06-09 16:58:53.000', 'C', NULL);

SET FOREIGN_KEY_CHECKS = 1

订单明细的建表语句:

CREATE TABLE `订单明细`  (
  `订单ID` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `产品ID` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `产品数量` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `产品单价` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of 订单明细
-- ----------------------------
INSERT INTO `订单明细` VALUES ('1001', '001', '5', '6');
INSERT INTO `订单明细` VALUES ('1001', '002', '8', '23');
INSERT INTO `订单明细` VALUES ('1002', '003', '12', '17');
INSERT INTO `订单明细` VALUES ('1003', '001', '3', '6');
INSERT INTO `订单明细` VALUES ('1003', '004', '4', '36');
INSERT INTO `订单明细` VALUES ('1004', '005', '9', '15');
INSERT INTO `订单明细` VALUES ('1004', '002', '14', '23');
INSERT INTO `订单明细` VALUES ('1005', '003', '23', '17');
INSERT INTO `订单明细` VALUES ('1006', '003', '14', '17');

SET FOREIGN_KEY_CHECKS = 1;

上方需求如何实现

img


SELECT 订单.订单申请人, SUM(订单明细.产品数量 * 订单明细.产品单价) AS 订单总额
FROM 订单
INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID
WHERE 订单.订单申请时间 BETWEEN '2020-04-01' AND '2020-05-31'
AND 订单.订单收货国家 NOT IN ('英国', '法国')
GROUP BY 订单.订单申请人
ORDER BY 订单总额 DESC;

##
SELECT DATE_FORMAT(订单.订单申请时间, '%Y-%m') AS 年月, SUM(订单明细.产品数量 * 订单明细.产品单价) AS 订单总额
FROM 订单
INNER JOIN 订单明细 ON 订单.订单ID = 订单明细.订单ID
WHERE 订单.订单收货国家 NOT IN ('英国', '法国')
GROUP BY 年月
ORDER BY 年月;