我有多个SQL查询与不同的where子句:多个SQL查询where子句
select * from (
SELECT ov.state_nm, ov.state_id,us.client_id, us.rebate_qtr_id,
sum(cvr.rebate_per_claim) as flagged
FROM [dOVT_OutlierView].[APP01DBA].[OVT_USER_STATE_ASSIGNMENT] us
inner join ovt_states ov on us.state_id=ov.state_id
inner join OVT_LABELER_CLIENT_STATE_SETTINGS css
on css.client_id=us.client_id and us.state_id=css.state_id
inner join [APP01DBA].[OVT_CLAIM_VALIDATION_ALL_RESULT] cvr
on us.client_id= cvr.client_id
and css.client_id=cvr.client_id
inner join [APP01DBA].[OVT_CLAIM_VALIDATION_ALL_RESULT_USER_DECISION] udes
on udes.client_id=cvr.client_id
and udes.client_id=css.client_id and us.client_id=udes.client_id
where us.assigned_to_user_id=81 and us.company_id=50 and us.client_id=23
group by ov.state_id, us.client_id,ov.state_nm,us.rebate_qtr_id) a
cross join (
SELECT
sum(cvr.rebate_per_claim) as follwup
FROM [dOVT_OutlierView].[APP01DBA].[OVT_USER_STATE_ASSIGNMENT] us
inner join ovt_states ov on us.state_id=ov.state_id
inner join OVT_LABELER_CLIENT_STATE_SETTINGS css
on css.client_id=us.client_id and us.state_id=css.state_id
inner join [APP01DBA].[OVT_CLAIM_VALIDATION_ALL_RESULT] cvr
on us.client_id= cvr.client_id
and css.client_id=cvr.client_id
inner join [APP01DBA].[OVT_CLAIM_VALIDATION_ALL_RESULT_USER_DECISION] udes
on udes.client_id=cvr.client_id
and udes.client_id=css.client_id and us.client_id=udes.client_id
where us.assigned_to_user_id=81 and us.company_id=50 and us.client_id=23
and udes.followup_dispute_ignore_flg='F'
group by ov.state_id, us.client_id,ov.state_nm,us.rebate_qtr_id) b
上述两种选择中括号查询是一样的,只是where子句在第二查询加入。仅用于合并目的,我已将交叉连接添加到两个查询中。
是否有其他方法可以在不重复查询的情况下执行此操作?
公用表表达式(CTE)也许。 – jarlh
@jarlh能否请你提供示例 – SivaRajini
使用UNION而不是交叉连接 –