SQL 帮助 - 每月销售额总计
SQL Help - Totals From Monthly Sales
所以我在 mySQL 数据库中提取所有标有特定型号前缀的项目,我按产品名称分组,我正在计算数量(一个订单可能有多个产品),我正在打印批发价,这是一个手动 CASE 语句,根据完整型号名称设置价格。
然后table显示:产品,型号,数量,批发价。
我想做的是每个产品都有一个总计(数量*批发价),在最下面有每月的总计。
问题是批发价不是官方专栏,因为它是每行设置它的一个丑陋的 case 语句。
这是我的代码的净化版本
SELECT
products_name,
count(products_quantity) as quantity,
CASE WHEN products_model = '123-ir' THEN 8.50
WHEN products_model = '123#262' THEN 8.50
WHEN products_model = '123#262red' THEN 10.50
WHEN products_model = '123#249' THEN 8.50
WHEN products_model = '123#217' then 3.00
WHEN products_model = '123#258' then 3.50
WHEN products_model = '123#246' then 2.00
ELSE 'fix me' END AS wholesale_price,
'' as total
FROM cart.orders INNER JOIN cart.orders_products ON orders.orders_id = orders_products.orders_id
WHERE YEAR(date_purchased) = YEAR (CURDATE()) AND MONTH(date_purchased) > MONTH (CURDATE()) - 1 -- in the last month
AND cart.orders_products.products_model like '123%'
GROUP BY products_name
ORDER BY products_name
我会查看 WITH 语句 (https://dev.mysql.com/doc/refman/8.0/en/with.html) 或子查询。然后,您可以将价格抽象为一个通用的 table 表达式,并像使用普通列一样使用结果。
所以我在 mySQL 数据库中提取所有标有特定型号前缀的项目,我按产品名称分组,我正在计算数量(一个订单可能有多个产品),我正在打印批发价,这是一个手动 CASE 语句,根据完整型号名称设置价格。
然后table显示:产品,型号,数量,批发价。
我想做的是每个产品都有一个总计(数量*批发价),在最下面有每月的总计。
问题是批发价不是官方专栏,因为它是每行设置它的一个丑陋的 case 语句。
这是我的代码的净化版本
SELECT
products_name,
count(products_quantity) as quantity,
CASE WHEN products_model = '123-ir' THEN 8.50
WHEN products_model = '123#262' THEN 8.50
WHEN products_model = '123#262red' THEN 10.50
WHEN products_model = '123#249' THEN 8.50
WHEN products_model = '123#217' then 3.00
WHEN products_model = '123#258' then 3.50
WHEN products_model = '123#246' then 2.00
ELSE 'fix me' END AS wholesale_price,
'' as total
FROM cart.orders INNER JOIN cart.orders_products ON orders.orders_id = orders_products.orders_id
WHERE YEAR(date_purchased) = YEAR (CURDATE()) AND MONTH(date_purchased) > MONTH (CURDATE()) - 1 -- in the last month
AND cart.orders_products.products_model like '123%'
GROUP BY products_name
ORDER BY products_name
我会查看 WITH 语句 (https://dev.mysql.com/doc/refman/8.0/en/with.html) 或子查询。然后,您可以将价格抽象为一个通用的 table 表达式,并像使用普通列一样使用结果。