27,579
社区成员
发帖
与我相关
我的任务
分享
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
rownum
from
(
select t1.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc,rownum
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
rownum
from
(
select t1.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc,rownum
if object_id('tempdb..#temp') is not null
drop table #temp
--先放到临时表
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,identity(int,1,1) as identity_id
into #temp
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
--查询结果
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
(select count(*)
from #temp t2
where t1.StateTime = t2.StateTime
and t1.identity_id >= t2.identity_id) as rownum
from #temp t1
)t
where rownum <=2
order by StateTime desc,rownum
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select a.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
[/quote]报错了“列前缀‘a’与查询中所用的表名或列名不匹配”。[/quote]
改成这样试试:
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select t1.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
[/quote]这样的结果是查询出了这个人所有信息,不是分组后的头两条数据
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select a.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
[/quote]报错了“列前缀‘a’与查询中所用的表名或列名不匹配”。[/quote]
改成这样试试:
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select t1.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select a.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
[/quote]报错了“列前缀‘a’与查询中所用的表名或列名不匹配”。
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from
(
select a.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.StartTime = t1.StartTime
and t2.NewsId <= t1.NewsId
) as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by StateTime desc
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
rownum
from
(
select t1.*,
(
select count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
convert(varchar(7),StateTime,120) as mon
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.mon = t1.mon
)-
(
select
count(*)
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,
convert(varchar(7),StateTime,120) as mon
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
) t2
where t2.mon = t1.mon
and t2.NewsId <= t1.NewsId
)+1 as rownum
from
(
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime,convert(varchar(7),StateTime,120) as mon
from tb_News
where (NewsType = '时光树') and (userid = 1)
group by StateTime,NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,
NewsAudi,newstc,Newssource,updateuser,Newsimg,Statetype,psort,
newspartinfo,newspage,userid
)t1
)t
where rownum <= 2
order by mon desc,StateTime desc,rownum
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and s.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
你试试这个行不行[/quote]我用的是sql2000哦,报错了[/quote]额,水平有限,我只能帮这么多了= =我的是08[/quote]恩恩,没事,谢谢你帮助了我select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and s.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
你试试这个行不行[/quote]我用的是sql2000哦,报错了[/quote]额,水平有限,我只能帮这么多了= =我的是08select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and s.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and t.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
你试试这个行不行[/quote]select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and t.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
select NewsId,NewsTitle,NewsContent,NewsTime,NewsClick,NewsType,NewsAudi,
newstc,Newssource,updateuser,Newsimg,Statetype,psort,newspartinfo,
newspage,userid,StateTime
from tb_News as t
where (NewsType = '时光树') and (userid = 1) and s.NewsId IN
(select top 2 NewsId
from tb_News
where t.StateTime=[StateTime],
t.NewsId=[NewsId],
t.NewsTitle=[NewsTitle],
t.NewsContent=[NewsContent],
t.NewsTime=[NewsTime],
t.NewsClick=[NewsClick],
t.NewsType=[NewsType],
t.NewsAudi=[NewsAudi],
t.newstc=[newstc],
t.Newssource=[Newssource],
t.updateuser=[updateuser],
t.Newsimg=[Newsimg],
t.Statetype=[Statetype],
t.psort=[psort],
t.newspartinfo=[newspartinfo],
t.newspage=[newspage],
t.userid=[userid]
ORDER BY [StateTime])
你试试这个行不行SELECT * FROM tb_News AS t
WHERE t.StartDate IN
(SELECT TOP 2 StartDate
FROM tb_News
WHERE t.statetime=[statetime] --分组的对象
ORDER BY StartDate DESC)
这个简单的语句可以帮你做分组top2,试试吧。