Sql server 附条件

Sql server 附条件,sql-server,Sql Server,我有两张桌子。第一个表有3列,即SupplierId、SupplierDetailID和entityid,第二个表有2列,即SupplierId和SupplierDetailID。在第一个表中,由于存在多个实体id,因此存在多个SUPPLIERID和Supplierdetailid的组合。我希望在SUPPLIERID字段上形成左联接,这样,只有当suppliersDetailID在第一个表中为空时,它才应该从第二个表中获取该特定SUPPLIERID的Supplierdetailid的最大值。 形

我有两张桌子。第一个表有3列,即SupplierId、SupplierDetailID和entityid,第二个表有2列,即SupplierId和SupplierDetailID。在第一个表中,由于存在多个实体id,因此存在多个SUPPLIERID和Supplierdetailid的组合。我希望在SUPPLIERID字段上形成左联接,这样,只有当suppliersDetailID在第一个表中为空时,它才应该从第二个表中获取该特定SUPPLIERID的Supplierdetailid的最大值。 形成的查询将给出第一个\u表supplierID,如果第一个\u表SupplierDetailID为空,则特定supplierID的第二个表SupplierDetailID的最大值为第一个\u表entityid。

此SQL查询将适用于您

SELECT s1.SupplierID,
       ISNULL(s1.SupplierDetailID, MAX(s2.SupplierDetailID)) AS SupplierDetailID
FROM s1
    LEFT JOIN s2
        ON s1.SupplierID = s2.SupplierID
GROUP BY 
         s1.SupplierID,s1.SupplierDetailID;
s1是第一个供应商表


s2是第二个供应商表。

太好了。你试过什么?是一个很好的开始。这几乎和lmgtfy回复一样好,只是在描述中添加一些文字无助于让其他人更清楚地了解这一点。我们不知道你的项目,也看不到你的屏幕。它正在成为一堵文字墙,因为没有人试图让它清晰可辨。