1

我有一个按月按供应商列出的库存美元表。我希望能够每天更新当月的美元金额,但我不想丢失上个月的数据。这是我的基本查询:

DELETE Inventory_Dollars 
FROM Inventory_Summary
WHERE MonthNum = '4'

SELECT
SUM(Cost*OnHand) AS Inventory_Dollars
FROM Inventory

Inventory 表将始终保存当前数据。如何将 Select 语句中的数据插入到 Inventory_Summary 中?

4

2 回答 2

0

只需在查询前加上 INSERT:

INSERT INTO Inventory_Summary
            (Inventory_Dollars)
SELECT SUM(Cost * OnHand) AS Inventory_Dollars
FROM   Inventory 
于 2013-04-22T19:09:04.067 回答
0

如果您已经插入了当月的 inventory_dollars 金额,那么您可以每天使用以下内容更新该值:

UPDATE Inventory_Summary
SET Inventory_Dollars = (
    SELECT (Cost * OnHand)
    FROM Inventory
)
WHERE MonthNum = DATEPART(m, GETDATE()) AND Year = DATEPART(year, GETDATE())

DATEPART 可用于填写当前日期的月份数,GETDATE()。那么您将不会更新过去几个月的 inventory_dollars 值。

编辑:还在 where 子句中添加了一年,因此您不会更新过去几年的月份。

编辑 2:如果您在 SET 中使用子查询,请确保只能返回一个结果。

于 2013-04-22T19:14:56.917 回答