这是相关问题Related question的链接,
现在我有一个查询,它给出了我想要的公司名称
QUERY
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
然后我想添加该特定公司名称的重要面前。所以我该怎么做 。
如果您需要任何细节,请随时询问。
提前致谢
答案 0 :(得分: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
答案 1 :(得分:0)
@ user2193861,是与公司表左边连接中的优惠券..?
LEFT JOIN
(
SELECT Name, COUNT(*) totalCoupons
FROM Coupon
GROUP BY Name
) b ON a.name = b.name
答案 2 :(得分: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