0

这是相关问题相关问题的链接,

现在我有一个查询,它给出了我想要的公司名称

询问

 SELECT  CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN a.Name +'(Important) '
     WHEN IsHighPriority = 1 THEN a.Name +'(High Priority) '
    ELSE a.Name +''
END  AS CompanyName
 FROM    Company a
LEFT JOIN
(
    SELECT  Name, COUNT(*) totalCoupons
    FROM    Company
    GROUP   BY Name
) b ON a.name = b.name

现在我想要那个在(important)我们正在测试的场景中,如果公司有超过 3 张优惠券,则(Important)在公司名称前面添加,但如果公司有超过 3 张优惠券,我想这样做

RejectProcessed = 0 and ReviewVerify = 0 and isPublish = 0 and ForSupervisor = 0 

然后我想在那个特定的公司名称前面添加重要的内容。所以我该怎么做 。

请随时询问您是否需要任何详细信息。

提前致谢

4

3 回答 3

1

这个查询解决了我的问题

SELECT  CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN company.Name +' (Important) '
        WHEN IsHighPriority = 1 THEN company.Name +' (High Priority) '
        ELSE company.Name +''
    END  AS CompanyName , company.id as Companyid
FROM    Company company
    left JOIN
    (
        SELECT  co.Name as coName, co.id as coid, COUNT(c.id) totalCoupons
        FROM    Company co, Coupon c
        where c.CompanyId = co.id   and c.RejectedProcessed = 1 and c.ReviewVerify = 0 and c.isPublish = 0 and c.ForSupervisor = 0 
        GROUP   BY co.Name, co.id
    ) b ON company.id = b.coid
于 2013-03-28T04:24:38.697 回答
0

用这个..

SELECT CASE WHEN COALESCE(b.totalCoupons, 0) > 3 THEN a.Name +'(Important) '

WHEN IsHighPriority = 1 THEN a.Name +'(High Priority) '

ELSE a.Name +''

END AS CompanyName

FROM Company a

LEFT JOIN

(

SELECT  Name, COUNT(*) totalCoupons

FROM    Company C

WHERE

EXISTS(

         select 1 

         from coupon P

         where P.RejectProcessed = 0 and P.ReviewVerify = 0

         and P.isPublish = 0 and P.ForSupervisor = 0 

         and P.CompanyName = C.Name

       )

and in second query..

use WHERE P.RejectProcessed = 0 and P.ReviewVerify = 0

and P.isPublish = 0 and P.ForSupervisor = 0
于 2013-03-26T12:22:00.070 回答
0

@user2193861,优惠券是否存在于与公司表的左连接中..?

LEFT JOIN
(
    SELECT  Name, COUNT(*) totalCoupons
    FROM    Coupon 
    GROUP   BY Name
) b ON a.name = b.name
于 2013-03-26T10:10:42.240 回答