2017-02-27 117 views
0

我想将查询的结果显示为新列,这是我的代码,但它显示在2个表中。将查询结果添加为sql中的新列

SELECT JobNo 
     ,Prepared1 
     ,Prepared2 
    FROM [test] 
SELECT 
    COUNT(CASE WHEN Prepared1 >1 THEN 1 END) + 
    COUNT(CASE WHEN Prepared2 >1 THEN 1 END) as 'Done' 
    FROM [test] 
GROUP BY JobNo 

Current result

应该是什么我的代码有它在1台这样的

desired result

+0

这看起来并不像MySQL的语法,它看起来像SQL-Server中。 – Barmar

+0

是的,我很抱歉它应该是sql-server ...谢谢你们都回复... –

回答

0

我觉得JobNo是UNIQUE。如果是这样,你可以简单地使用:

SELECT JobNo 
     ,Prepared1 
     ,Prepared2 
     ,CASE WHEN Prepared1 > 1 THEN 1 ELSE 0 END 
     + CASE WHEN Prepared2 >1 THEN 1 ELSE 0 END 
    FROM [test] t1 

如果不是:

select JobNo, 
    Prepared1, 
    Prepared2, 
    t2.done 
from [test] t1 
join (
    select JobNo, 
     COUNT(case 
       when Prepared1 > 1 
        then 1 
       end) + COUNT(case 
       when Prepared2 > 1 
        then 1 
       end) as done 
    from [test] t2 
    group by JobNo 
    ) t2 on t1.JobNo = t2.JobNo;