其实SQL语句这一句真难写了

angelwing559 2010-08-10 05:09:06
select A.linkid,A.hot,B.id,B.len,count(1)*1.0/4 as 结果 into table2010
from jamlinks201007 A left join Linkgroupbyring B
on A.linkid=B.linkid
where A.data in('20100701','20100705')
group by A.linkid,A.hot,B.len,B.id
having count(1)*1.0/4>0.1


各位看官,你看哦,上面这一句SQL我写好了,是对的,得到下表:

编号 hot 区域 长度 属性
17004 0 112 49.6295008777284 0.500000
22044 0 113 777.646389288057 0.250000
11323 2 113 427.394712578715 0.250000
18527 1 113 21.2343958322971 0.500000
27735 0 112 315.116703496882 0.250000
15831 0 112 68.8638739609707 0.500000
19326 0 207 405.893991414224 0.500000
27470 2 207 951.585967187522 0.500000
24011 1 112 21.7653456018986 0.500000


------------------------------------------------------------

然后能为了得到下表,我寻思着,应该上面查出来的数据新建一个表撒?
对吧,于是你看我上面的SQL里面有一句into对吧

要求查询出来,然后把相同区域的长度值全部相加,得到下面这个表

于是我可以用SQL
select id,sum(len) from table2010 group by id


区域 总长度
112 xxxxxxxxxxxxxxxx
113 xxxxxxxxxxxxxxxx
207 xxxxxxxxxxxxxxxx

就得到了

但是我郁闷啊~~~~~~~~为什么呢

就是因为第一个SQL里面的into,我不想每次用户他们点击什么什么东西,都要into一次,因为第一次已经INTO了呀!对吧
唉~~~~~~~~~~~

咋办呢咋办呢?

求解~~~~~~~~~~~~~~~要解决哦
...全文
163 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelwing559 2010-08-11
  • 打赏
  • 举报
回复
谢谢楼上各位了
路人乙e 2010-08-10
  • 打赏
  • 举报
回复
select id,sum(len) from (
select A.linkid,A.hot,B.id,B.len,count(1)*1.0/4 as 结果
from jamlinks201007 A left join Linkgroupbyring B
on A.linkid=B.linkid
where A.data in('20100701','20100705')
group by A.linkid,A.hot,B.len,B.id
having count(1)*1.0/4>0.1
) t group by id
wtnu200 2010-08-10
  • 打赏
  • 举报
回复
注意编号的类型
wtnu200 2010-08-10
  • 打赏
  • 举报
回复
declare @F编号 varchar(50)
set @F编号=''
select @F编号=编号 from table2010 where 编号=?(要检查的用户的编号)
if @F编号=''
begin
return -1
end
linda_liuyu 2010-08-10
  • 打赏
  • 举报
回复
先判断表是否存在。如不存在则 Into
写拼装语句吧
angelwing559 2010-08-10
  • 打赏
  • 举报
回复
怎么判断表是否存在,请给写一个吧,我试试~拜托了
guohelv0519 2010-08-10
  • 打赏
  • 举报
回复
看来楼主还是没有学透 SQL 啊。除了要掌握一般查询语句之外(这里是指对用户数据库操作),还要学会对系统对象(系统存储过程和系统表等)操作。
myhope88 2010-08-10
  • 打赏
  • 举报
回复
就判断一下表有没有存在再执行嘛
sprc_lcl 2010-08-10
  • 打赏
  • 举报
回复
select id,sum(len) from (你那一串去掉into的) group by id

sardineany 2010-08-10
  • 打赏
  • 举报
回复
判断是否存在呗
hsbhljl 2010-08-10
  • 打赏
  • 举报
回复
用if not exists不行吗

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧