日期:2014-05-17  浏览次数:20503 次

请教大家sql相关语句
    本人sql菜鸟,但是由于项目需要,望大家帮忙。
    表userprofile中有userid,moterid,sub等属性,表userdayengy中有userid,moterid,energy,startdate,enddate等属性,现在通过给sub信息,在userprofile中通过sub返回userid和moterid(当然有很多对啦),然后通过每一对userid和moterid,以及给予的startdate或enddate在userdayengy中返回energy。 得到用户需要的电量信息。
     基本信息是这些,我是想到用游标,但具体如何操作不太会.......
------最佳解决方案--------------------
select energy
from userdayengy as a 
where exists(select 1 from userprofile as b where b.userid=a.userid and b.moterid=a.moterid and b.sub='XXX') and (startdate='xxxx-xx-xx' or enddate='xxxx-xx-xx')
------其他解决方案--------------------

--表userprofile中有userid,moterid,sub等属性
--表userdayengy中有userid,moterid,energy,startdate,enddate等属性
--现在通过给sub信息,在userprofile中通过sub返回userid和moterid
--然后通过每一对userid和moterid,以及给予的startdate或enddate
--在userdayengy中返回energy。

--定义参数
declare @sub varchar(40)
declare @startdate datetime,@enddate datetime
--参数赋值(略)

--关于两个时间的参数是用between还是用什么判断自行修改即可。
select 
b.energy 
from userprofile a join userdayengy b 
on a.userid=b.userid and a.moterid=b.moterid
where a.sub=@sub 
and b.startdate=@startdate
and b.enddate=@enddate