免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3497 | 回复: 10
打印 上一主题 下一主题

Group by [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-28 21:56 |只看该作者 |倒序浏览
group by 用法求救,不知道怎么处理,就是在用group by 经常会出现这样的情况\"在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中\"

论坛徽章:
0
2 [报告]
发表于 2007-06-28 22:05 |只看该作者
SELECT后面的列,除了聚集函数中的列外,必须出现在GROUP BY后面

论坛徽章:
0
3 [报告]
发表于 2007-06-28 22:38 |只看该作者
联机丛书上有的哦,select后面的字段必须出现在group by 后或被作为聚合函数计算

论坛徽章:
0
4 [报告]
发表于 2007-06-28 23:04 |只看该作者
指定用来放置输出行的组。如果 SELECT 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每组的汇总值。指定 GROUP BY 时,选择列表中任意非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。

注意:  
如果未指定 ORDER BY 子句,则使用 GROUP BY 子句返回的组没有任何特定的顺序。若要指定特定的数据排序,建议您始终使用 ORDER BY 子句。

论坛徽章:
0
5 [报告]
发表于 2007-06-28 23:56 |只看该作者
最初由 sky_chenyu 发布
[B]
注意:  
如果未指定 ORDER BY 子句,则使用 GROUP BY 子句返回的组没有任何特定的顺序。若要指定特定的数据排序,建议您始终使用 ORDER BY 子句。 [/B]

既然没有GROUP BY 子句又怎么说特定的顺序那?

论坛徽章:
0
6 [报告]
发表于 2007-07-06 10:29 |只看该作者

group by 还是不明白!

select t4.fnumber as 物料代码,t4.fname as 物料名称,t3.fnumber as 厂商代码,
t3.fname as 厂商名称,t5.fnumber as 币别,t1.fprice as 当前单价,t2.fpohighprice as 采购最高限价,
(t1.fprice-t2.fpohighprice) as 价格差异,(t1.fprice-t2.fpohighprice)/t1.fprice as 限价比例,
CONVERT(varchar(10),t1.fquotetime,126) as 生效如期,
CONVERT(varchar(10),t1.fdisabledate,126) as 失效日期,
CONVERT(varchar(10),t1.FlastmodifiedDate,126) as 修改日期,
(Case When t1.FUsed=1 Then \'已审核\' Else \'未审核\' end) as 审核状态
from T_supplyentry t1
Inner Join T_supply t2 On t1.fitemid=t2.fitemid
Inner Join T_supplier t3 on t2.fsupid=t3.fitemId
Inner Join T_icitem t4 on t1.fitemid=t4.fitemId
Inner Join T_currency t5 on t1.FcyId=t5.FcurrencyId
where t1.fptype=1
group by  #########




还是不明白 group 的用法,假如是上面的语句,你说group by 后面应该加上什么?

论坛徽章:
0
7 [报告]
发表于 2007-07-06 10:32 |只看该作者

还有百分号显示

t1.fprice-t2.fpohighprice)/t1.fprice as 限价比例

怎么让它显示出来是百分比的样式  例如 2.5%

论坛徽章:
0
8 [报告]
发表于 2007-07-06 10:40 |只看该作者
回复6楼:
记住GROUP BY后面不引用列的别名
然后,按照你想要分组的字段进行修改,即可

论坛徽章:
0
9 [报告]
发表于 2007-07-06 10:47 |只看该作者
group by 后面是select 后面字段之一就行

论坛徽章:
0
10 [报告]
发表于 2007-07-06 10:59 |只看该作者
回复7楼:
select cast(cast((t1.fprice-t2.fpohighprice)/t1.fprice as decimal(3,1)) as varchar(20))+\'%\' as 限价比例
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP