select s.staff_name,s.staff_idcard,s.staff_address from staff s where s.STAFF_CODE=52110
select nvl(sum(v.attenddays),0)+nvl(sum(v.stopdays),0)attenddys from count_attend v where v.STAFFCODE=52110
请问我该怎么把这两个sql和在一起?
select s.staff_name,s.staff_idcard,s.staff_address, nvl(sum(v.attenddays),0)+nvl(sum(v.stopdays),0) from staff s where s.STAFF_CODE=52110
这样是不对的说不是单组查询。。。
求解答 谢谢!
不是单组查询,加上group by不就行了:
[code="sql"]
select s.staff_name,
s.staff_idcard,
s.staff_address,
nvl(sum(v.attenddays), 0) + nvl(sum(v.stopdays), 0) attenddys
from staff s, count_attend v
where s.STAFF_CODE = 52110
and s.staff_code = v.staffcode
group by s.staff_name, s.staff_idcard, s.staff_address
[/code]
我试了是ok的,仅供参考~
没有测试,哈。
大致的思路就是 统计的SQL文作为子查询。
我假设
[code="sql"]
select
s.staff_name,s.staff_idcard,s.staff_address
from staff s left join (
select STAFFCODE, nvl(sum(v.attenddays),0)+nvl(sum(v.stopdays),0)attenddys from count_attend group by STAFFCODE
) v on s.STAFF_CODE=v.STAFFCODE
where
s.STAFF_CODE=52110
[/code]