两次查询同一张桌子

时间:2010-12-11 01:40:42

标签: mysql sql

我有两张桌子。一个是stock_by_month,它保存有关bookId,stockvalue和reportId的记录。第二个表是书;它保留了BookId,BookTitle和bookprice的记录。 reportId每个月都是独一无二的,因此2010年10月1日是2010年11月2日和2010年12月3日

任务是我想要生成一份报告,其中包括图书详细信息,并提供当月(报告代码3)和上个月(报告编号2)的股票价值。

我对这种复杂性不熟悉。我不确定这是否可行。如果是的话,我将非常感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

听起来你想要使用join。有很多关于SQL的教程,所以请阅读联接,你应该看看如何实现你的报告。

答案 1 :(得分:0)

您应该加入这两个表来获取所有信息,然后按reportid进行分组。下面是一些SQL,可以帮助您入门,但肯定会像Cameron建议的那样阅读联接,也可以阅读'group by'

SELECT      m.bookId, m.stockvalue, m.reportId, b.BookId, b.BookTitle, SUM(b.bookprice) AS total
FROM        stock_by_month m
JOIN        book b 
    ON  b.PRIMARY_KEY = m.FOREIGN_KEY
GROUP BY    m.reportId, m.bookId, m.stockvalue, b.BookId, b.BookTitle, b.bookprice
ORDER BY    m.reportId DESC