所以,我对SQL很陌生,但我从我所学的课程中得到的这本书是无用的,我正在尝试为这门课程做一个项目。互联网并没有帮助我这么多(我不知道从哪里开始),所以我想要两个好的教程链接来检查以及帮助解决一个非常具体的问题。
如果我说的不够清楚,请让我解释一下! :)
假设数据库中有两个表sale
和p_sale
,名为jewel_store
。
sale
包含两列:sale_CODE
和sale_date
p_sale
包含sale_CODE
,其中引用了上述sale_ID
,p_ID
,p_sl_quantity
和
p_sl_value
sale_CODE
是sale
的主键,sale_CODE,p_ID
是p_sale
的主键
目前p_ID
并没有多大用处,所以请大家忽略它。
p_sl_quantity
为int
,p_sl_value
为double(8,2)
。第一个是购买产品的数量,第二个是产品的 PER UNIT 值。
由于很明显sale_CODE
可以链接到p_sale
表中的众多条目(例如sale_CODE 1,我在p_sale上有2个条目)。
所有这些都是基于我从任务中获得的内容并且已正确实现并且具有一些示例值。
我现在要做的是查找特定月份的销售总收入。我最初的方法是逐步开始构建所有内容,所以我已经达到了如下所示:
SELECT
SUM(p_sl_value * p_sl_quantity) AS sales_monthly_income,
p_sale.sale_CODE
FROM jewel_store.p_sale
GROUP BY p_sale.sale_CODE
这可能只有一半,因为我可以获得为商店生成的销售总额。所以我的下一步是使用此查询和SELECT。我已经把它搞砸了几次,现在我正在挠头。我做的是这样的:
SELECT
SUM(sales_monthly_income),
sales_monthly_income,
EXTRACT(MONTH FROM jewel_store.sale.sale_date) AS sales_month
FROM (
SELECT
SUM(p_sl_value * p_sl_quantity) AS sales_monthly_income,
sale_CODE
FROM jewel_store.p_sale
GROUP BY sale_CODE
) as code_income, jewel_store.sale
GROUP BY sales_month
首先,我只需要以最终形式打印total_montly_income
和month
列,但我用这个来澄清那里的一切都出错了。我想我需要以某种方式使用引用另一个表的外键,但我的书完全没用来帮助我。我希望有人解释为什么这是错误的,正确的是什么,请指出一个好的pdf,网站或任何东西来学习如何做这种东西。 (我已经检查了W3SCHOOLS,这对基础知识有好处,但对于太高级的东西却没有用)
提前致谢!
答案 0 :(得分:1)
从我的头脑中,这可能是它,逐个月的价值总和数量。
SELECT
SUM(p.p_sl_value * p.p_sl_quantity) AS sales_monthly_income,
month(s.sale_date)
FROM p_sale p
inner join sale s on s.sale_code = p.sale_code
GROUP BY MONTH(s.sale_date)