在下面的查询中,我试图做一个快速汇总表来显示一些信息。使用where子句是为了从数据库中找到与该发布者相关的信息。在查看其他定义一个小时左右后,我看不清楚我的错在哪里。SQL where子句什么都不返回
对不起,这可能是一件很简单的事情,但是下面的查询有什么明显的错误。
SELECT Publisher.Name AS "Publisher Name",
Book.Title AS "Book Title",
ShopOrder.OrderDate AS "Order Date",
OrderLine.Quantity AS "Order Quantity",
(SUM(Quantity*UnitSellingPrice)) AS "Total Value"
FROM ShopOrder
INNER JOIN OrderLine
ON ShopOrder.ShopOrderID=OrderLine.ShopOrderID
INNER JOIN Book
ON OrderLine.BookID=Book.BookID
INNER JOIN Publisher
ON Publisher.PublisherID=Book.PublisherID
WHERE Publisher.Name='Oxford'
GROUP BY ShopOrder.ShopOrderID,
Publisher.PublisherID,
Book.BookID,
OrderLine.Quantity
ORDER BY ShopOrder.OrderDate;
非常感谢任何人的帮助!
编辑: 相关表DEFS
CREATE TABLE Publisher
(
PublisherID INTEGER,
Name VARCHAR(50),
PRIMARY KEY(PublisherID)
);
CREATE TABLE Book
(
BookID INTEGER,
Title VARCHAR(50),
Price DECIMAL (10, 2),
CategoryID INTEGER REFERENCES Category(CategoryID),
PublisherID INTEGER REFERENCES Publisher(PublisherID),
PRIMARY KEY(BookID)
);
CREATE TABLE ShopOrder
(
ShopOrderID INTEGER,
OrderDate DATE,
ShopID INTEGER REFERENCES Shop(ShopID),
SalesRepID INTEGER REFERENCES SalesRep(SalesRepID),
PRIMARY KEY(ShopOrderID)
);
CREATE TABLE OrderLine
(
ShopOrderID INTEGER REFERENCES ShopOrder(ShopOrderID) ON DELETE CASCADE,
BookID INTEGER REFERENCES Book(BookID),
Quantity INTEGER,
UnitSellingPrice DECIMAL (10,2)
);
做的所有连接表都有记录的数据,其中'Publisher.Name ='Oxford''?从“Publisher”开始,并加入其他表以查看断开连接的位置。 –
@ d-stanley我是一个SQL noob,所以我不完全确定你的意思。我真的很讨厌问这么愚蠢的问题,因为我可能是愚蠢的,只是在窃听你。你能否更详细地解释。如果不是不用担心:) – RyanH
只是为了测试上述评论,将'INNER JOIN Publisher'改为'RIGHT JOIN Publisher' –