SQL 2008 年的 DISTINCT 语句

DISTINCT statement in SQL 2008

如何让 DISTINCT 仅在 'serviceType' 处结束?我试过联合和相交无济于事。

$tsql = "SELECT DISTINCT serviceType, product, provider, rate, qty, updated FROM contracts WHERE client='{$_POST['client']}' ";

我需要查看最新更新的 serviceType 记录以及其他可用信息,但不是我所做的每一个小更改。但是,我想将更改保留为存档。

这就是我在 SQL 服务器中编写该查询的方式:

SELECT distinct  main.serviceType, b.product, b.provider, b.rate, b.qty, b.updated
FROM contracts  as main
Outer Apply (Select Top 1 
                    serviceType, product, provider, rate, qty, updated 
             FROM contracts as sub
             where main.serviceType = sub.serviceType
             Order by updated  desc
             ) b
WHERE client= @client

好的,我知道了:

$tsql = "SELECT distinct  main.serviceType, b.product, b.provider, b.rate, b.qty, b.updated
    FROM contracts AS main
    OUTER APPLY (SELECT TOP 1 
                serviceType, product, provider, rate, qty, updated 
                FROM contracts as sub
                WHERE main.serviceType = sub.serviceType AND client='{$_POST['client']}'
                ORDER BY ID DESC
                ) b

    WHERE client='{$_POST['client']}' ";

谢谢费亚尔。我只需要将 ORDER BY 更改为 ID,因为我在同一天进行了多次更改。