0
这个查询:如何在一个单一的语句写来获得期望的结果
select audit_id, Count(TRAINING_RESULT_ID) safe
from TBL_T_AUDIT_DETAILS
where TRAINING_RESULT_ID =1
group by audit_id
order by audit_id
给我的结果:
audit_id safe
117 5
118 3
123 5
130 7
131 39
136 38
这个查询:
select audit_id, Count(TRAINING_RESULT_ID) unsafe
from TBL_T_AUDIT_DETAILS
where TRAINING_RESULT_ID =2
group by audit_id
order by audit_id
给了我这些结果:
audit_id unsafe
117 2
118 3
123 2
131 2
136 3
141 3
148 3
151 4
157 4
最后,这个查询:
select audit_id, Count(TRAINING_RESULT_ID) na
from TBL_T_AUDIT_DETAILS
where TRAINING_RESULT_ID =3
group by audit_id
order by audit_id
给我的结果:
audit_id na
118 1
147 124
148 8
157 116
218 79
226 47
我怎样才能得到下面的结果?
audit_id na unsafe safe
117 0 0 2
118 1 3 3
147 124 0 0
148 8 0 0
157 116 0 0
218 79 0 0
226 47 0 0
141 0 3 0
148 0 3 0
123 0 0 2
131 0 0 2
136 0 0 3
THANKS可以哟帮助我如何caluclate安全 – Ram 2013-03-18 15:09:54
(安全)的%/安全+不安全* 100 – Ram 2013-03-18 15:10:38
这必须是在我的答案中包含一个外部查询(或者来自@AlexanderFedornko的答案,这也将起作用)。您只能计算总计的百分比,而不是单个行。另外,由于'na'状态,你必须防止零分。就像'SELECT safe /(safe + unsafe)FROM()WHERE safe + unsafe <> 0'。或者,您可以跳过'WHERE safe + unsafe <> 0'检查是否通过将where子句更改为WHERE TRAINING_RESULT_ID IN(1,2)'来省略内部查询中的'na'状态。 –
2013-03-18 15:23:51