打印本文 打印本文 关闭窗口 关闭窗口
SQL中UNION 与 UNION ALL 的区别
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4089  更新时间:2007/11/14 11:11:23  文章录入:mintao  责任编辑:mintao
WHERE (dbo.Key_item.Key_item <> 1)

GROUP BY dbo.Key_item.Style,dbo.Key_item.Key_item_name

order by Style

其结果如图如示:

3、提出数据的二级汇总明细,其代码如下:

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

其结果如图所示:

       总体的设计就如以上所示,但通过UNION联接的时候出现了新的问题。通过以下例子,就可以看出UNIONUNION ALL的区别

方案一,其代码如下:

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 (

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

其结果如下:

上一页  [1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口