我用一个已经写好的存储过程实现分页,存储过程名为mypage,这里面有个参数@tb表示表名,建这个存储过程的人在用的时候,@tb="news"表,我现在想要做的是,要从两个表中查询,例如:select a.a,a.b,c.c,c.d from a,b where a.a=c.c and c.d<>0,我在用存储过程时,@tb="a,b",一运行总是出错,详细信息如下:
聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
这是怎么回事,是不是我的语句写错了
聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
这是怎么回事,是不是我的语句写错了
解决方案 »
- SideBar的子Item好像不能添加自己定义的组件,请问有无其他更好的第三方控件?
- 这些代码如果转换成c#的是什么样?麻烦帮帮忙
- ADO问题
- textbox 控件怎么实现在按了tab控件自动弹出一个窗体?
- 我准备买一本C#书,请大家给点意见
- 如何制作限制时间获次数的试用版?
- System.IO.FileLoadException: Could not load file or assembly ...........................求助
- DataSet.Tables["xx"].Rows[dataGrid1.CurrentCell.RowNumber].Delete();删除行时出现在的问题
- 怎样才能在一个网页打开时就能看到从数据库中取出的数据(在线)
- 用listBox绑定并显示数据库一个字段数据,选中一行并进行删除,提示不存在表‘1’
- C#怎么写接口
- 增加和删除xml文件里的一个结点,有哪些方法?
这个
select a.a,a.b,c.c,c.d from a,b where a.a=c.c and c.d<>0
没用到B表呀。
select ware.wid,ware.wname,sayword.wid,sayword.stile from ware,sayword where ware.wid=sayword.wid and sayword.bokeid<>0
select ware.wid wid1,ware.wname,sayword.wid,sayword.stile from ware,sayword where ware.wid=sayword.wid and sayword.bokeid<>0
假如表中内容如下
name id stitle
铅笔 1 好漂亮
铅笔 1 好便宜
钢笔 2 好用
钢笔 2 好漂亮
我想实现以下结果:
name id stitle
铅笔 1 好漂亮
钢笔 2 好用
怎么写语句
select name,min(id) as id,min(stitle) as stitle from Table
group by name
wid表示商品编号,sword表示对该商品的评论,举一个例子来说,如果对于商品编号为1和2的两种商品,肯定各自有很多条评论,我想让商品1和2都只显示出一条记录,显示出的记录包括这几个字段
wid,wname,sword
还有一个条件是sid<>0
group by ware.wid,ware.wname
select wid,wname from ware,(select distinct wid,sword from sayword) as say where ware.wid=say.wid
看看可以吗?
我没实验,哪里错了再告诉我说
sayword.wid 是ware表的外键
select x.wid,x.wname,sayword.sword,sayword.unicknme, ......
from
(select ware.wid wid,ware.wname wname,min(sayword.sid) sid from ware,sayword where ware.wid=sayword.wid and sayword.sid<>0
group by ware.wid,ware.wname) x, sayword
where x.sid = sayword.sid
group by ware.wid,ware.wname
这个语句目的是为每个商品获取对应该商品的最初的一条评论记录编号,这个语句的结果集将作为一个表与评论表进行联合查询,由于前面的查询结果集中sid唯一,所以可以用这个作为关联键直接获取评论表中对应的记录