6 sql sql-server stored-procedures
我有三个选择查询,它们根据不同的where子句从同一个表中返回总记录,成功记录和失败记录.我想将所有这些语句的结果加入到一个表中以便创建我的存储过程但是结果表应该有三个不同的列用于cdr,成功,失败
SELECT Count(*) AS cdr
FROM ABC AS c WITH (NOLOCK)
WHERE APPID IN( 1, 2 )
AND CALLDATE = '2012-10-09'
SELECT Count(*) AS success
FROM ABC AS d WITH (NOLOCK)
WHERE APPID IN( 44, 45 )
AND CALLDATE = '2012-10-09'
AND HANGUPCODE IN ( 'man', 'mach' )
SELECT Count(*) AS fail
FROM ABC WITH (NOLOCK)
WHERE APPID IN( 44, 45 )
AND CALLDATE = '2012-10-09'
AND HANGUPCODE NOT IN ( 'man', 'mach' )
Run Code Online (Sandbox Code Playgroud)
Union在一列中给出结果,因此不起作用.任何其他想法
Lit*_*les 16
只需将每个select语句包装在括号中,为每个select语句指定一个别名,并SELECT在顶部使用:
SELECT
(select count(*) as cdr
from abc as c with (nolock)
where appid in(1,2) and calldate = '2012-10-09'
) AS Column1,
(select count(*) as success
from abc as d with (nolock)
where appid in(44,45) and calldate = '2012-10-09'
and hangupcode in ('man', 'mach')
) AS Column2,
(select count(*) as fail
from abc with (nolock)
where appid in(44,45) and calldate = '2012-10-09'
and hangupcode not in ('man', 'mach')
) AS Column3
Run Code Online (Sandbox Code Playgroud)
基本上,您将每个查询视为单个列.
| 归档时间: |
|
| 查看次数: |
30848 次 |
| 最近记录: |