【发布时间】:2013-06-17 13:18:01
【问题描述】:
我有一张桌子STOCK,看起来像这样:
PRODUCT SALES_CODE STOCK_1 STOCK_2 STOCK_3
-----------------------------------------------------
A 6-10 0 1 2
有很多 STOCK_X 存储桶,但为简单起见,我已将其排除在外。
现在我有另一张桌子SIZE_GRID:
SALES_CODE SIZE_1 SIZE_2 SIZE_3
--------------------------------------
6-10 6 8 10
正如您可能已经猜到的那样,这些是特定产品的现有库存,按尺寸排列。
我需要从第一个表中获取 STOCK 值,并从第二个表中获取大小。 最初,我在做以下事情
SELECT
STOCK.PRODUCT,
SIZE_GRID.SIZE_1,
STOCK.STOCK_1
FROM
STOCK
INNER JOIN
SIZE_GRID ON
SIZE_GRID.SALES_CODE = STOCK.SALES_CODE
UNION ALL
SELECT
STOCK.PRODUCT,
SIZE_GRID.SIZE_2,
STOCK.STOCK_2
FROM
STOCK
INNER JOIN
SIZE_GRID ON
SIZE_GRID.SALES_CODE = STOCK.SALES_CODE
UNION ALL
SELECT
STOCK.PRODUCT,
SIZE_GRID.SIZE_3,
STOCK.STOCK_3
FROM
STOCK
INNER JOIN
SIZE_GRID ON
SIZE_GRID.SALES_CODE = STOCK.SALES_CODE
我有大约 40 个 STOCK_X 需要检索,所以如果有更简单的方法可以做到这一点,那么徘徊?最好我想使用纯 SQL 而不是 UDF/SP。
【问题讨论】:
-
上述方法封装到视图中除了繁琐之外,还有什么问题?
标签: sql sql-server