我的代码需要特定的join语句吗

时间:2019-03-27 14:19:34

标签: sql-server

enter image description here

我坚持写这段代码。

我需要获得的输出是

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

1 个答案:

答案 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,直到找到不导致返回任何行的那个。检查该表中的数据,以了解为什么在联接之前它没有联接到您的查询中。