我希望按所有字段进行分组。我通过使用 - WITH关键字来实现它。 有没有其他方法可以做到这一点? 选择按所有字段分组的结果
WITH T AS (SELECT a.codeid AS VendorID ,
a.hname ,
a.hnamee ,
CASE WHEN v.AudienceID = 0 THEN 1
ELSE 0
END AS HasAll
FROM dbo.dtAny AS a
LEFT JOIN VendorAudience AS v ON a.codeid = v.VendorID
WHERE a.hrclvl = @level
AND a.dcode = @dcode
AND a.codeid = ISNULL(@VendorID, a.codeid)
)
SELECT VendorID ,
hname ,
hnamee ,
HasAll
FROM T
GROUP BY vendorid ,
hname ,
hnamee ,
HasAll
我想是这样的:
SELECT a.codeid AS VendorID ,
a.hname ,
a.hnamee ,
CASE WHEN v.AudienceID = 0 THEN 1
ELSE 0
END AS HasAll
FROM dbo.dtAny AS a
LEFT JOIN VendorAudience AS v ON a.codeid = v.VendorID
WHERE a.hrclvl = @level
AND a.dcode = @dcode
AND a.codeid = ISNULL(@VendorID, a.codeid)
GROUP BY VendorID ,a.hname ,a.hnamee ,HasAll
,但有错误的HasAll试图组(我不要v.AudienceID需要组)
为什么不使用'distinct'而不是分组? – 2012-04-20 07:42:01