Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更新语法_Sql Server - Fatal编程技术网

Sql server 更新语法

Sql server 更新语法,sql-server,Sql Server,我有以下情况: 表为etblpricelistprices 栏目如下: iPriceListNameID iPricelistNameID iStockID fExclPrice 1 1 1 10 2 2 1 20 3 3 1

我有以下情况:

表为etblpricelistprices

栏目如下:

iPriceListNameID    iPricelistNameID   iStockID   fExclPrice

1                   1                  1           10
2                   2                  1           20
3                   3                  1           30
4                   4                  1           40
5                   5                  1           100
6                   6                  1           200
7                   7                  1           300
8                   8                  1           400
9                   1                  2           1000
10                  2                  2           2000
11                  3                  2           3000
12                  4                  2           4000
13                  5                  2           50
14                  6                  2           40
15                  7                  2           30
16                  8                  2           20
这里只有两个库存项目,但数据库中的库存项目更多。第一列是自动递增的主键。第二列是价格表。价格表分为以下几部分。1-4为当前定价,5-8为未来定价。第三列是库存项目的ID,第四列是项目的定价


我需要一个脚本来更新此表,以交换每个项目的未来和当前定价。如果愿意,请帮助

观察交换iPricelistNameID值将获得与交换FexClice值相同的总体效果,并且可以使用以下公式执行:

UPDATE _etblpricelistprices
SET
    iPricelistNameID = CASE
                WHEN iPricelistNameID > 4 THEN iPricelistNameID - 4
                ELSE iPricelistNameID + 4
    END

看来我的格式已经过时了。请询问您是否需要布局,我很乐意将其邮寄给您您您的意思是pricelist 1和pricelist 5的值应该交换位置,与2和6、3和7以及4和8相同吗?如果不是,我不知道你的意思,你需要解释更多。是的,达米恩,确实如此,但它需要按照StockId这样做。第一列和第二列是否真的有这些名称,只是大小写不同?如果没有,您能否编辑您的问题并更正名称?这些是db中的列是,很遗憾。第一列是pk,并自动增加将添加到系统中的每个新库存项目。第二列是pricelistid,它将仅从1-8开始。当系统中只有一个库存项目时,我可以通过运行以下语法获得要交换的值,但是当有多个库存项目时,它失败了。