查询结果无法分组

ysycysyc 2018-07-31 07:38:24

各位大虾,TMZ中只有一条记录,TMY中有上万条不同的记录,想查询TMY中各条记录的和与TMZ部分字段按下列语句计算的结果及相同结果出现的次数,这应该会有很多不同结果,但只返回一条结果

DELETE H
INSERT INTO H

SELECT
(
cast((y.a+y.b+y.c+y.d+y.e+y.f)/(z.a*1.000000) as decimal(18,10))+
cast((y.a+y.b+y.c+y.d+y.e+y.f)/(z.b*1.000000) as decimal(18,10))
)
/
(
cast((y.a+y.b+y.c+y.d+y.e+y.f)/(z.e*1.000000) as decimal(18,10))+
cast((y.a+y.b+y.c+y.d+y.e+y.f)/(z.f*1.000000) as decimal(18,10))
)
FROM TMY y, TMZ z

GO
SELECT H,COUNT(*) FROM H GROUP BY H ORDER BY H ASC

最后返回的结果是

H 无名列
---------------------------------

1.8134770000 17568
17568是TMY中记录的数量,但H列不应该只有一种结果的,请大虾们帮看下是哪里的问题。
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
RINK_1 2018-08-01
  • 打赏
  • 举报
回复
引用 4 楼 qq_37170555 的回复:
看了半天,你上面写的基本上可以理解成一个这样的方程式:(x/a+x/b)/(x/c+x/d) x代表y.a+y.b+y.c+y.d+y.e+y.f abcd分别代表TMZ表中的abef字段。 这时候不管你的x是多少,因为abcd是固定的,算出来的值总是一样的(至少我套用了很多个值算出来都是一样的值哈)。因此导致H只有一个值。
确实哦,按你的方法把X提取后,就相当于只剩常量了,数学都快忘没了。
听雨停了 2018-08-01
  • 打赏
  • 举报
回复
看了半天,你上面写的基本上可以理解成一个这样的方程式:(x/a+x/b)/(x/c+x/d)
x代表y.a+y.b+y.c+y.d+y.e+y.f
abcd分别代表TMZ表中的abef字段。
这时候不管你的x是多少,因为abcd是固定的,算出来的值总是一样的(至少我套用了很多个值算出来都是一样的值哈)。因此导致H只有一个值。
ysycysyc 2018-08-01
  • 打赏
  • 举报
回复
各位大虾,真不好意思,我这两天鼻子见长
  • 打赏
  • 举报
回复
可以先Select出来H表的内容,就知道原因了
IEEE_China 2018-08-01
  • 打赏
  • 举报
回复
H表 的H字段,,,这也是没谁了
h字段是一个值,就下面这个效果



;with cte(h,abc) as(
select 'Ha',12353531
union all select 'Ha',13456345
union all select 'Ha',43454568
union all select 'Ha',54534536
union all select 'Ha',64345563
)
select h,COUNT(*)as cnt from cte group by h order by h asc




h cnt
---- -----------
Ha 5

(1 行受影响)
二月十六 2018-08-01
  • 打赏
  • 举报
回复
先看看H 表里的数据是什么样的,是不是有多个H值。另外楼主这个表名和字段名一样……

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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