sql2000下聚合的一个问题,急!

sanxiang 2003-07-15 09:37:32
我在groupby里有一个某一个字段的截取字段处理:substring(ziduan,1,2),这个部分在where语句里可以正常使用,但是在select的部分里就不能使用这个substring(ziduan,1,2),一用就报sql内部出错。
但是问题奇怪就是同样的一个语句,在sql65下就能正常使用。

请教各位大侠帮帮忙!
...全文
24 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanxiang 2003-07-15
  • 打赏
  • 举报
回复
大力兄,什么意思啊,我把substring改成left也不行,
在前面加了select substring()的也不行。
pengdali 2003-07-15
  • 打赏
  • 举报
回复
select substring(ziduan,1,2) from 表 group by substring(ziduan,1,2)

select left(ziduan,2) from 表 group by left(ziduan,2)
pengdali 2003-07-15
  • 打赏
  • 举报
回复
select substring(ziduan,1,2) from 表 group by substring(ziduan,1,2)

select left(ziduan,2) from 表 group by left(ziduan,2)
sanxiang 2003-07-15
  • 打赏
  • 举报
回复
语句如下:
select l_fund_id = d.l_fund_id ,
en_trade_market_ratio =
convert( numeric( 16, 4 ),
(
convert(float,(select isnull(sum(en_instant_price * l_turnover_amount),0)
from fundrun..stockcodes a, fundrun..tradefund b
where l_fund_id = d.l_fund_id
and vc_inter_code = vc_stock_code
and substring(vc_trade_id,1,2) = substring(d.vc_trade_id,1,2) --********

))
/
convert(float,(select isnull(sum(en_instant_price * l_turnover_amount),0)
from fundrun..stockcodes a, fundrun..tradefund b
where l_fund_id = d.l_fund_id
and vc_inter_code = vc_stock_code))
) * 100.0 )
FROM fundrun..tradetypes d
WHERE (
d.l_fund_id = 1
and d.vc_trade_id like '01%'
)

GROUP BY
d.l_fund_id, substring(vc_trade_id,1,2)
如果把那条后面打*的句子注销掉,那么可以通过
maconelxp 2003-07-15
  • 打赏
  • 举报
回复
你的group by 字段是什么?
使用group by如果没有使用ziduan,那么你的select里,就不能用select substring(ziduan,1,2)...
愉快的登山者 2003-07-15
  • 打赏
  • 举报
回复
将具体语句贴出来。

34,836

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧