我坚持写这段代码。
我需要获得的输出是
firstName lastname Name Price Date
--------------- --------------- ------------------------- -------- ----------
Bateman Michael Furniture DR 222.80 2013-05-01
Tara Roswell Clothes Ladies 24.25 2013-05-04
LeMay Mike Toys Child 12.00 2013-05-12
创建一个查询,该查询将显示谁在2013年5月间捡起未售出的物品。在输出中包括所有者的名字和姓氏,以及物品名称,最高价格和提货日期。按提货日期订购您的输出。我的输出如下所示:
我的输出是
FirstName LastName Name Price Date
--------------- --------------- ------------------------- ------- ----------
我的代码是
SELECT P.FirstName
, P.LastName
, IT.Name
, I.MaxPrice AS Price
, IP.Date
FROM People P
JOIN CHARITY C ON P.PeopleID = C.ContactID
JOIN Donation D ON C.CHARITYID = D.CHARITYID
JOIN Item_Donation ID ON D.DonationID = ID.DonationID
JOIN IteM I ON ID.ItemID = I.ItemID
JOIN Item_Type IT ON I.ItemTypeID = IT.ItemTypeID
JOIN Item_PickUp IP ON I.ItemID = IP.ItemID
ORDER BY IP.Date
答案 0 :(得分:0)
我认为您的查询没有问题,因此我怀疑是数据问题。这是我将对此进行调查的方式。首先查询“根”表:
SELECT * FROM People p
如果结果与预期不符,则说明您在数据中发现了问题。
如果结果正常,则添加第一个联接:
SELECT *
FROM People P
JOIN CHARITY C ON P.PeopleID = C.ContactID
同样,如果结果不符合预期,则CHARITY
表中有数据问题。单独查询CHARITY
表,以查看该表中的行为何未联接到People
:
SELECT * FROM CHARITY
如果结果符合您的期望,则添加下一个JOIN,然后一次继续一个JOIN,直到找到不导致返回任何行的那个。检查该表中的数据,以了解为什么在联接之前它没有联接到您的查询中。