我用一个已经写好的存储过程实现分页,存储过程名为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 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
这是怎么回事,是不是我的语句写错了
解决方案 »
- 在ASP的代码中怎么调用JavaScript
- 我想启动一个程序时首先查看另一个程序是否已经启动,如未启动就退出(或自动把他启动起来),如何处理?
- DataTable中数据表结构创建到access中成为与之相同结构的数据表
- ODBCCommand update 问题
- 图像显示的问题
- 如何设置控件里面的控件属性,在线等!
- 问个正则表达式的问题
- 请问我想自己写数据集,不从数据库里取,可以怎么做?
- 在c#里覆盖一个父类System.Web.UI.Page 的render和oninit怎么写,我有vb的代码。
- 请问有关System.Net.Sockets的问题:LingerOption有什么作用?
- 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唯一,所以可以用这个作为关联键直接获取评论表中对应的记录