日期:2014-05-18  浏览次数:20523 次

求一个SQL2005视图

表1:UserSmsText 
  内含字段:ID,UserAdminID,STEXT

表2:Account
  内含字段:ID,AccountName

表3:PushData
  内含字段:UserSmsTextID,State


表1:UserSmsText的字段 UserAdminID对应表2 Account的字段ID
表1:UserSmsText的字段ID,对应表3 PushData的字段UserSmsTextID

表1内有数据 ID=1,UserAdminID=999

想读取这行数据,显示出表2对应的 AccountName,统计出 PushData表里面所有UserSmsTextID等于1并State='R'
的行数。

------解决方案--------------------
SQL code
--读取表1内有数据 ID=1,UserAdminID=999,并显示表2对应的 AccountName

select a.*,b.AccountName, from UserSmsText a
left join Account b on a.UserAdminID=b.ID
left join PushData c on a.ID=c.UserSmsTextID
where a.ID=1 and UserAdminID=999

------解决方案--------------------
SQL code
--统计出 PushData表里面所有UserSmsTextID等于1并State='R'的行数。

select count(*) from UserSmsText a
left join Account b on a.UserAdminID=b.ID
left join PushData c on a.ID=c.UserSmsTextID
where c.State='R' and c.UserSmsTextID=1

------解决方案--------------------
SQL code
select
 count(1) 
from
 UserSmsText a
left join
 Account b on a.UserAdminID=b.ID
left join
 PushData c on a.ID=c.UserSmsTextID
where
 c.State='R' and c.UserSmsTextID=1