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

【急,在线等】 问大家一个简单的SQL 查询语句,内详
假设有两个表TABLE1,TABLE2

TABLE1是这样的情况

学号   性名   列3
1           a       【select   count(*)   from   TABLE2   where   学号=1   AND   time   =getdate()】
2           b     【select   count(*)   from   TABLE2   where   学号=2   AND   time   =getdate()】
3           c   【select   count(*)   from   TABLE2   where   学号=3   AND   time   =getdate()】

而其中的这个列3,是根据学号,在表2中查出来的东西,这样的情况,用一句SQL语句能查出来么?

------解决方案--------------------
time =getdate()--去掉这个条件
或改为
</> 不能用=
------解决方案--------------------
不知道楼主要干什么.如果查当日.

select count(*) from TABLE2 where 学号=1 AND convert(varchar(10),time,120) = convert(varchar(10),getdate(),120)
------解决方案--------------------
\
select 学号,
sum(case 学号 when '1 ' then 1 else 0) as 学号1,
sum(case 学号 when '2 ' then 1 else 0) as 学号1,
sum(case 学号 when '3 ' then 1 else 0) as 学号1
from TABLE2 where time =getdate()
group by 学号
------解决方案--------------------
select 学号,性名,count(table2.学号) as 列3
from TABLE1
LEFT JOIN TABLE2 ON TABLE1.学号=TABLE2.学号
group by 学号,性名
------解决方案--------------------

--通常的比較都是精確到天的
--如果是的話,你的語句這麼寫
Select
学号,
性名,
列3 = (Select Count(*) From TABLE2 where 学号= A.学号 AND DateDiff(dd,[time], getdate()) = 0)
From
TABLE1