这里是我的查询不起作用,因为它显然违反了HAVING子句的规则:如何过滤合并列的值的分组查询?
SELECT
COALESCE(Publisher.name, Affiliate.name) AS Publisher
,dbo.SumKeys(Item.id) AS ItemIDs
FROM
Item
INNER JOIN ItemAccountingStatus ON Item.item_accounting_status_id = ItemAccountingStatus.id
INNER JOIN Affiliate ON Item.affid = Affiliate.affid
INNER JOIN Currency AffiliateCurrency ON Affiliate.currency_id = AffiliateCurrency.id
INNER JOIN Campaign ON Item.pid = Campaign.pid
INNER JOIN CampaignStatus ON Campaign.campaign_status_id = CampaignStatus.id
LEFT OUTER JOIN Publisher ON Affiliate.affid = Publisher.affid
GROUP BY
COALESCE(Publisher.name, Affiliate.name)
,ItemAccountingStatus.name
,CampaignStatus.name
HAVING (
ItemAccountingStatus.name='default'
and CampaignStatus.name='Verified'
and Publisher='AdsMain LLC' -- THIS BREAKS THE QUERY
)
问:有没有办法做到这一点?
回答我自己的问题 - 身价离开这个向上或我应该删除吗? – 2011-05-05 04:32:08
我会放弃它 - 如果有人遇到同样的问题,他们可能会很高兴找到答案! – 2011-05-05 04:52:17
@marc_s:答案已添加。这是“为什么我不能在WHERE子句中访问我的列别名”的变体“ – gbn 2011-05-05 04:59:04