我正在尝试使用从Excel中提取更改的查询来更新我的数据库。
DB看起来像这样:
表价格表:
ID ...... PriceID .......价格........ PriceWithTax
1 ........... 1 .............. 100 ............... 110
1 ........... 2 ............... 90 ................. 99
1 ........... 3 ............... 80 ................. 88
PriceID表示此商品可以有3种不同的价格(针对不同的客户)。
TO BE excel文件包含的内容是:
ItemCode .........说明......... Price1 ....... Price2 ....... Price3
ABCD ...................牛排.............. 100 ........... ..90 ............ 80
到目前为止,我可以逐个更新,但是我想在一个查询中完成所有操作。
这是我输入Price1值的查询的第一部分 - 但它会更改所有值:
UPDATE dbo.PriceList
SET PriceList.fExclPrice = Price1
FROM StockItem INNER JOIN PriceList ON StockItem.StockID = PriceList.StockID
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Update.xls;',
'SELECT ItemCode, Description, Price1
FROM [Update$]')
ON StockItem.ItemCode COLLATE DATABASE_DEFAULT = ItemCode
第二部分是这样的:
UPDATE dbo.PriceList
SET PriceList.fExclPrice = Price2
FROM StockItem INNER JOIN PriceList ON StockItem.StockID = PriceList.StockID
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Update.xls;',
'SELECT ItemCode, Description, Price2
FROM [Update$]')
ON StockItem.ItemCode COLLATE DATABASE_DEFAULT = ItemCode Where PriceList.PriceID = 2
最后一部分是针对PriceWithTax:
更新PriceList SET PriceWithTax = ROUND(fExclPrice * 1.14,2)
将这些组合成1个查询的最佳方法是什么?
谢谢!