sql server 子查询问题

selecttop100net2.nameCN,*fromNM_NetDatasnet1leftjoinNM_NetSitesnet2onnet1.SiteCodeId=... select top 100 net2.nameCN,* from NM_NetDatas net1
left join NM_NetSites net2
on net1.SiteCodeId = net2.SiteCodeId
以上sql是我把两个表关连起来后,
现在想法这个结果做为一个表 a
查表a 中的一个字段dataId
select top 100 a.dataId from
(select top 100 net2.nameCN,* from NM_NetDatas net1
left join NM_NetSites net2
on net1.SiteCodeId = net2.SiteCodeId) a;
就出错了 以下为出错原因!
消息 8156,级别 16,状态 1,第 1 行
多次为 'a' 指定了列 'SiteCodeId'。
怎么修改啊
最后答案:
select T.MediaCode,T.MediaName,sum(1) as total,
sum(case T.state when 1 then 0 else 1 end) as '已提交',
sum(case T.state when 1 then 1 else 0 end) as '未提交'
from (select A.State,C.MediaCode,C.MediaName from NM_CustCateDate A
join NM_NetDatas B on B.MediumTypeId=A.MediumTypeId and B.DataId=A.DataId
left join NM_Medias C on C.MediumType=B.MediumTypeId and C.MediaCode=B.MediaCode
where A.MediumTypeId=5 and B.PublicDate>='2000-01-01' and B.PublicDate<='2011-12-31') T
group by T.MediaCode,T.MediaName
展开
 我来答
hit_lubin
2011-04-02 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2019万
展开全部
是两个表都有SITECODEID的问题吧,因为select *早晨出现了两个sitecodeid,你把*去掉,换成需要的列,还有问题么?
如果单看子查询,是对的。但是你运行子查询看看查到的结果,是不是有两个字段的名字都叫sitecodeid,你如果把这个查询的集合作为表A,出现了两个一样的字段,A是没法处理的

呵呵,你已经把DATAID重命名了,对于A表,应该叫ID。A.ID就没问题了。小心了哦
wzsjzjjxy
2011-04-02 · TA获得超过3258个赞
知道大有可为答主
回答量:4175
采纳率:0%
帮助的人:1801万
展开全部
首先你内部的left join是通过SiteCodeId关联的,所以,你用*那么内部查询就会出现两个列名都是SiteCodeId的列,这样你在外层查询的时候就会报错。建议改成:
select top 100 a.dataId from
(select top 100 net2.nameCN,net1.* from NM_NetDatas net1
left join NM_NetSites net2
on net1.SiteCodeId = net2.SiteCodeId) a;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhx110
2011-04-02
知道答主
回答量:33
采纳率:0%
帮助的人:16万
展开全部
我想 sitecodeid 是主键,要唯一
你的目的是查询字段dataid ,如果字段在表NM_NetDatas中,语句
select top 100 net1.dataid,* from NM_NetDatas net1
left join NM_NetSites net2
on net1.SiteCodeId = net2.SiteCodeId
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0951d78
2011-04-02 · TA获得超过1451个赞
知道小有建树答主
回答量:1727
采纳率:0%
帮助的人:1268万
展开全部
是不是你的NM_NetDatas 和NM_NetSites 表都有dataId字段
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式