
基本完全一样的sql一句,执行结果不同?求大神解答
SELECTo.erp_sku,o.amountasoglc_amount,sum(g.amount)asglc1_sum_amountFROMromeo.oglcoLE...
SELECT o.erp_sku, o.amount as oglc_amount, sum(g.amount) as glc1_sum_amount
FROM romeo.oglc o LEFT JOIN romeo.glc1 g ON o.erp_sku = g.erp_sku
GROUP BY o.erp_sku
HAVING o.amount != sum(g.amount)
与
SELECT o.erp_sku, o.amount as oglc_amount, sum(g.amount) as glc1_sum_amount
FROM romeo.oglc o LEFT JOIN romeo.glc1 g ON o.erp_sku = g.erp_sku
GROUP BY o.erp_sku
HAVING o.amount != glc1_sum_amount 展开
FROM romeo.oglc o LEFT JOIN romeo.glc1 g ON o.erp_sku = g.erp_sku
GROUP BY o.erp_sku
HAVING o.amount != sum(g.amount)
与
SELECT o.erp_sku, o.amount as oglc_amount, sum(g.amount) as glc1_sum_amount
FROM romeo.oglc o LEFT JOIN romeo.glc1 g ON o.erp_sku = g.erp_sku
GROUP BY o.erp_sku
HAVING o.amount != glc1_sum_amount 展开
2013-12-09
展开全部
怎么会一样,sum(g.amount) glc1 里面的值 glc1_sum_amount是 o.erp_sku = g.erp_sku
的值 后面的是有条件的 前面是没有条件的SUM
的值 后面的是有条件的 前面是没有条件的SUM
追问
谢谢解答,我们主从库数据不符,两个sql应该是一样的意思,结果应该完全相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只是找一张表的话,你这个写法是没有区别的。
你加了一个或连接 可能有一些记录查询不到,glc1_sum_amount 的值可能会少于sum(g.amount)
你加了一个或连接 可能有一些记录查询不到,glc1_sum_amount 的值可能会少于sum(g.amount)
追问
谢谢解答,我们主从库数据不符,两个sql应该是一样的意思,结果应该完全相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这不是结果不一样的问题吧,第二个查询应该会报错!
因为Select子句的执行顺序是在 Group Having 语句之后,
那么你在Select 定义的别名 在Group Having中怎么能使用呢!?
因为Select子句的执行顺序是在 Group Having 语句之后,
那么你在Select 定义的别名 在Group Having中怎么能使用呢!?
更多追问追答
追问
不会报错的,我的数据库测试结果两个一样,提交到另一个数据库,结果跑出来完全不一样
追答
我越来越看不懂你的SQL了,你的查询中都是根据 o.erp_sku 来进行分组聚合的,
但是Select 列表中怎么可以出现 o.amount as oglc_amount 这个字段呢?
o.amount 根本没有分组啊!
类似的查询我在SQL Server2008上是报错的,楼主用的是什么数据库呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询