关于sql中的group by:
曾经用access生成一个超复杂的sql语句,用了很多left join ...on ,然后检索的每一个字段都必须加上group by,任何一个去掉都产生错误,我一直不明白为什么这样,然后昨天在csdn上面提问了,但是还是没能明白.今天再次用两表连接查询然后group by,好像页必须所有检索字段都加入才成.
eg:
select supplier.id as supplierid,supplier.shortname as supplier from supplier,dingdan_product where supplier.id=[dingdan_product].supplierid and [dingdan_product].dingdanid=4 group by dingdan_product.supplierid,supplier.id,supplier.shortname
曾经用access生成一个超复杂的sql语句,用了很多left join ...on ,然后检索的每一个字段都必须加上group by,任何一个去掉都产生错误,我一直不明白为什么这样,然后昨天在csdn上面提问了,但是还是没能明白.今天再次用两表连接查询然后group by,好像页必须所有检索字段都加入才成.
eg:
select supplier.id as supplierid,supplier.shortname as supplier from supplier,dingdan_product where supplier.id=[dingdan_product].supplierid and [dingdan_product].dingdanid=4 group by dingdan_product.supplierid,supplier.id,supplier.shortname
......
SQL Server BUG集之自定义函数与group by:
/**==** 1. 自定义函数用于group by时出错 **==**/--一个简单的函数create function f_str(@str sysname,@i int)returns char(1)as begin return(substring(@str,@i,1)) endgo
--下面是测试
--定义测试数据declare @t table(name sysname)insert into @t values(@#abcd@#)
--有group by的情况,结果错误select a=dbo.f_str(name,1),b=dbo.f_str(name,2)from @tgroup by dbo.f_str(name,1),dbo.f_str(name,2)
--无group by的情况,结果正确select a=dbo.f_str(name,1),b=dbo.f_str(name,2)from @tgo
--删除测试的自定义函数drop function f_str
/**==** 1. 自定义函数用于group by时出错 **==**/--一个简单的函数create function f_str(@str sysname,@i int)returns char(1)as begin return(substring(@str,@i,1)) endgo
--下面是测试
--定义测试数据declare @t table(name sysname)insert into @t values(@#abcd@#)
--有group by的情况,结果错误select a=dbo.f_str(name,1),b=dbo.f_str(name,2)from @tgroup by dbo.f_str(name,1),dbo.f_str(name,2)
--无group by的情况,结果正确select a=dbo.f_str(name,1),b=dbo.f_str(name,2)from @tgo
--删除测试的自定义函数drop function f_str
......
- 更多文章:
- · 在Windows 2003/XP with SQL Server下部署Snort入侵检测系统
- · Windows环境下通过MySQL以SYSTEM身份执行系统命令
- · 谈谈sql查询的between
- · dbUnit对mssqlserver自增长主键的处理
- · 在C++ Builder中使用Access数据库
- · 使用 ADO.NET 解锁 Microsoft Access 数据
- · Access2003开发者扩展工具集概述
- · [ASP.NET]System.UnauthorizedAccessException: 拒绝访问。
- · Convert access violation address to line no.
- · C#连接ACCESS和SQL2000
- · Access数据Office组件都可用
- · ACCESS2000数据库文件密码的提取(源程序c++builder5)(推荐大家转换成C#版本)
- · VB.Net中动态创建Access数据库
- · ASP连接Access数据库的几种方法!
- · 用ASP实现Access数据库查询
- · [ASP.NET]System.UnauthorizedAccessException: 拒绝访问。
- · 求助jsp与tomcat 运行jsp+access 的论坛 出现错误
- · FreeBSD 5.x File System Access Control Lists
- · MicrosoftAccess数据库常规规格介绍
- · PHP+Access设计留言版实战

