SQL的条件更新从Excel
我正在尝试更新我的数据库使用从Excel中提取更改的查询。
数据库将看起来像这样:
表价格表:
ID …… PriceID ……. Price …….. PriceWithTax
1 ……….. 1 …………….. 100 …………… 110
1 ……….. 2 …………… 90 …………….. 99
1 ……….. 3 …………… 80 …………….. 88
PriceID表示该项目可以有3个不同的价格(针对不同的客户)。
什么是Excel文件包含的是:
ItemCode ………描述……… Price1 ……. Price2 ……. Price3
ABCD ……………….牛排………….. 100 …………… 90 ………… 80
到目前为止,我可以更新1,但是我想在一个查询中完成。
这是我inputPrice1 Value的查询的第一部分 – 但它会更改所有值:
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个查询的最好方法是什么?
谢谢!