SQLServer2000中UNION与UNION ALL的区别
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-20
sp;LEFT OUTER JOIN dbo.H_MORVE ON dbo.Key_item.Key_item = dbo.H_MORVE.ITEM WHERE (dbo.Key_item.Key_item <> 1) GROUP BY dbo.Key_item.Style,dbo.Key_item.Key_item_name UNION SELECT MAX(dbo.Key_item.Key_item_name) as Item_Name, SUM(dbo.H_MORVE.QTY_RECVD1) as Quantity, dbo.Key_item.Style as Style FROM dbo.Key_item LEFT OUTER JOIN dbo.H_MORVE ON dbo.Key_item.Key_item = dbo.H_MORVE.ITEM GROUP BY dbo.Key_item.Style) ORDER BY dbo.Key_item.Style asc GO 其结果如下: 问题: 通过以上结果,可以发现GR180.14.2.1后机架、PY165G.14.2.1B后机架和PY165K.14.2.1后机架的明细与其二级汇总值明显不符。而二级汇总的值是正确,为什么明细与汇总值不符? 针对这个问题,我采用了第二种方案。 方案二,其代码如下: SELECT dbo.Key_item.Key_item_name AS Item_Name, dbo.H_MORVE.QTY_RECVD1 AS Quantity, dbo.Key_item.Style AS Style FROM dbo.Key_item LEFT OUTER JOIN dbo.H_MORVE ON dbo.Key_item.Key_item = dbo.H_MORVE.ITEM WHERE (dbo.Key_item.Key_item <> 1) UNION ALL( SELECT dbo.Key_item.Key_item_name AS Item_Name, SUM(dbo.H_MORVE.QTY_RECVD1) AS Quantity,MAX(dbo.Key_item.Style) AS Style FROM dbo.Key_item LEFT OUTER JOIN dbo.H_MORVE ON dbo.Key_item.Key_item = dbo.H_MORVE.ITEM WHERE (dbo.Key_item.Key_item <> 1) GROUP BY dbo.Key_item.Style,dbo.Key_item.Key_item_name UNION SELECT MAX(dbo.Key_item.Key_item_name) as Item_Name, SUM(dbo.H_MORVE.QTY_RECVD1) as Quantity, dbo.Key_item.Style as Style FROM dbo.Key_item LEFT OUTER JOIN dbo.H_MORVE ON dbo.Key_item.Key_item = dbo.H_MORVE.ITEM GROUP BY dbo.Key_item.Style) ORDER BY dbo.Key_item.Style asc GO 其结果如图: 通过以上的例子,大家可以看出在UNION与UNION ALL在应用上区别。 关注此文的读者还看过:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: SQL Server的用户及权限下一篇: 用T-SQL导入文件数据到SQL Server
关于SQLServer2000中UNION与UNION ALL的区别的所有评论