这是mysql查询
SELECT CallDate,SUM(Hour0) AS FailedCalls FROM call_status WHERE CallDate='2012-09-14' AND CallStatusId NOT IN (42,52)
UNION
SELECT CallDate,SUM(Hour0) AS SuccessCalls FROM call_status WHERE CallDate='2012-09-14' AND CallStatusId IN (42,52);
这是输出
抱歉这张小图片。 正如您所看到的,我使用上面的查询选择了失败的调用,而使用第二个查询选择了SuccessCalls。但我想要的是一行中的CallDate,FailedCalls,SuccessCalls。
更新 这是正确的查询:
SELECT CallDate,
SUM(CASE WHEN (CallStatusId NOT IN(42,52)) THEN Hour0
ELSE 0
END) AS FailedCalls,
SUM(CASE WHEN (CallStatusId IN (42,52)) THEN Hour0
ELSE 0
END) AS SuccessCalls
FROM call_status
WHERE CallDate='2012-09-14';
答案 0 :(得分:0)
这些方面的东西?
SELECT CallDate
,SUM( CASE WHEN (Hour0 != 42 AND Hour0 != 52) THEN 1 ELSE 0 END ) AS FailedCalls
,SUM( CASE WHEN (Hour0 = 42 OR Hour0 = 52) THEN 1 ELSE 0 END ) AS SuccessCalls
FROM call_status
WHERE CallDate='2012-09-14'