【问题标题】:SQL Server 2008 join and countSQL Server 2008 加入和计数
【发布时间】:2013-10-16 01:35:12
【问题描述】:

我对 SQL 比较陌生,我很难弄清楚这个查询。我需要显示由多个卡车司机运送的货物 (shipment_no)。

这是我认为我需要的表(名为 Package)中仅有的两列,以及我加入的整个其他表(卡车)。如您所见,shipment_no 1775 是唯一一个由不止一辆卡车/司机交付的。

包裹表 = Shipment_No - 1770,1771,1772,1773,1774,1774,1774,1775,1775,1775,1776,1777 和 Truck_no = 100,103,105,102,108,108,108,101,109,109,100,100(分别)

卡车表 = Truck_NO 100,101,102,103,104,105,106,107,108,109 和司机姓名 = JONES,DAVIS,GOMEZ,THOMPSON,HERSHEY,FERRIS,SHAVER,LEE,TOPI,ACKERMAN(分别)

这就是我目前所拥有的

select shipment_no, drivername
from package, truck
where package.truck_no=truck.truck_no
group by shipment_no, drivername

我的结果是这样的

 - Shipment_no = 
1770
1771
1772
1773
1774
1775
1775
1776
1777
 - Drivername =
JONES
THOMPSON
FERRIS
GOMEZ
TOPI
ACKERMAN
DAVIS
JONES
JONES

我只需要显示最后的运输号码,所以它看起来像这样。

-Shipment_no

-1775   

我已经尝试了几个小时,感谢您提供任何帮助。

非常感谢!

【问题讨论】:

    标签: sql sql-server-2008 join


    【解决方案1】:
    Select  shipment_no
    From    Package
    Group BY shipment_no
    Having Count(Distinct Truck_No) > 1
    

    【讨论】:

    • 哇,这比我想象的要简单得多!非常感谢!
    【解决方案2】:

    试试这个:

    SELECT Shipment_no
    FROM package
    GROUP BY Shipment_no
    HAVING COUNT(DISTINCT Truck_no) > 1
    

    【讨论】:

    • 您需要按 shipping_no 分组
    • 您还缺少 Count(Distinct Truck_no) 中的 distinct。如果没有不同的,您还将收到货件 1774,它有 3 排,都是同一辆卡车。
    • 是的,你是对的,我也必须解决这个问题,赞成票是我的,谢谢 :)
    • 非常感谢埃斯特班!它比我想象的要简单得多
    • @Roberto1991 如果 Esteban 的回答解决了您的问题,您应该“接受”它。
    猜你喜欢
    • 1970-01-01
    • 2014-07-17
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2016-10-19
    相关资源
    最近更新 更多