使用同一表中的数据更新表

汤姆

尝试编写查询以使用来自同一表的数据更新表。

基本上,此表中有两种类型的数据,即预算和预测,按客户,产品,会计年度和月份划分。

数据样本如下:

CustomerCosts
CustomerNo     Product     FiscalYear    Month    DataType    DataField    Q    R    G
CU01           REG         2014          1        Budget      Commission   10   2    20
CU01           REG         2014          1        Budget      Warehouse    5    5    25
CU01           REG         2014          2        Budget      Commission   30   1    30
CU01           REG         2014          2        Budget      Warehouse    12   2    24
CU01           REG         2014          1        Forecast    Commission   10   2    20
CU01           REG         2014          1        Forecast    Warehouse    5    5    25
CU01           REG         2014          2        Forecast    Commission   30   1    30
CU01           REG         2014          2        Forecast    Warehouse    12   2    24

基本上,用户将要从一种数据类型复制到另一种数据类型。例如,将2014年预算复制到2014年预测中。

我想出了这个查询,但是虽然行数似乎很有效,但显示更新的行比应有的多。

UPDATE CustomerCosts 
SET CustomerCosts.Q = f.Q, 
CustomerCosts.R = f.R,
CustomerCosts.G = f.G
FROM CustomerCosts
JOIN CustomerCosts f
ON CustomerCosts.CustomerNo = f.CustomerNo AND 
CustomerCosts.Product = f.Product AND 
CustomerCosts.Month = f.Month AND 
CustomerCosts.DataField = f.DataField
WHERE CustomerCosts.FiscalYear = 2014 AND 
CustomerCosts.DataType = N'Forecast' AND 
f.FiscalYear = 2014 AND
f.DataType = N'Budget'

我的查询正确吗?还是我遗漏了一些东西?

谢谢。

博格丹·博格达诺夫(Bogdan Bogdanov)

我对我来说还可以。但是请确保进行测试始终是个好主意。使用以下命令将表CustomerCosts复制到新的临时表中

SELECT * INTO Test_CustomerCosts FROM CustomerCosts

之后,尝试更新(更改脚本,使其可以在“测试”表上使用)并查看结果。

尝试修改您的查询以选择:

select 
CustomerCosts.*, f.*
FROM CustomerCosts
JOIN CustomerCosts f ON 
  CustomerCosts.CustomerNo = f.CustomerNo AND 
  CustomerCosts.Product = f.Product AND 
  CustomerCosts.Month = f.Month AND 
  CustomerCosts.DataField = f.DataField
WHERE 
  CustomerCosts.FiscalYear = 2014 AND 
  CustomerCosts.DataType = N'Forecast' AND 
  f.FiscalYear = 2014 AND
  f.DataType = N'Budget'

看全图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用同一表中的数据更新行

来自分类Dev

使用同一表中的数据更新行

来自分类Dev

尝试使用同一表中的值更新表

来自分类Dev

从同一表更新相同数据

来自分类Dev

MySQL更新使用来自同一表的数据

来自分类Dev

使用 Laravel 中同一表中另一行的数据更新行

来自分类Dev

使用从同一表的多行中检索到的数据更新多列

来自分类Dev

使用-在同一表中混合来自mysql的数据

来自分类Dev

使用-在同一表中混合来自mysql的数据

来自分类Dev

一起更新和选择查询以更新同一表中的表数据

来自分类Dev

mysql更新同一表中的值,而不使用使用更新的临时表

来自分类Dev

在同一表的同一列中更新

来自分类Dev

从同一表中的值更新表属性

来自分类Dev

Oracle:使用同一表中的聚合值更新表中的值

来自分类Dev

查询以使用同一表的平均值更新表中的值

来自分类Dev

使用同一表中的值更新 sql 表的值

来自分类Dev

SQL比较同一表中的两列,并在另一表中更新

来自分类Dev

使用哈希表使用同一表的同一列从数据库中获取数据

来自分类Dev

PostgreSQL并使用基于同一表中现有记录的数据填充表

来自分类Dev

如何在SQL中更新同一表中的数据?

来自分类Dev

SQL Server-从同一表中的数据更新列

来自分类Dev

在同一表中基于DISTINCT的更新

来自分类Dev

请求:更新或插入同一表中的行

来自分类Dev

在同一表中基于DISTINCT的更新

来自分类Dev

在同一表中的更新上的子查询mysql

来自分类Dev

更新同一表中的最大值

来自分类Dev

更新同一表中的多个记录

来自分类Dev

使用同一表上的选择更新行

来自分类Dev

如何使用同一表的选择记录更新记录

Related 相关文章

热门标签

归档