Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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表中某些列的行,而不链接其他列?_Sql_Sql Server_Tsql_Sql Server 2012 - Fatal编程技术网

如何链接SQL表中某些列的行,而不链接其他列?

如何链接SQL表中某些列的行,而不链接其他列?,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我在excel中有一个值表,我想将其作为查找表放入sql。该表如下所示: sql表如下所示: 在SQL中有了它,我现在不想再使用excel文件了。 我还需要能够更改参数,但是excel文件中的一些参数是通过合并单元格链接的,因此共享相同的值,如果一个参数更改了,那么所有参数都会更改。 例如:当我更改产品1的参数B时,我需要它更改产品2、3、4和5的参数B,因为它们在excel表格中共享同一个单元格。如果我改变产品2的参数A,它只会改变产品2和3。我正在寻找一个SQL查询解决方案。我也有能力改

我在excel中有一个值表,我想将其作为查找表放入sql。该表如下所示:

sql表如下所示:

在SQL中有了它,我现在不想再使用excel文件了。 我还需要能够更改参数,但是excel文件中的一些参数是通过合并单元格链接的,因此共享相同的值,如果一个参数更改了,那么所有参数都会更改。 例如:当我更改产品1的参数B时,我需要它更改产品2、3、4和5的参数B,因为它们在excel表格中共享同一个单元格。如果我改变产品2的参数A,它只会改变产品2和3。我正在寻找一个SQL查询解决方案。我也有能力改变表的结构。 下面是我的示例查询:

Update [Table] Set [Parameter_A] = '{new_parameter_tag}' 
     Where [product] = '{selected_product_tag}'
除了我想让
其中
包含excel表中共享同一单元格的所有行之外。 我希望能够根据多个产品是否共享excel文件中该参数的同一单元格,一次更新多个产品的SQL表。 以下是我对答案的初步猜测:

Select [{Parameter}],[Product],[Extra_column]
From [Table] 
Where [Product] = '{selected_product}'
这将返回一行和[Extra_column],其中包含由同一单元格分组中的其他人共享的分组号。然后将其存储为{Extra_column}。然后:

Update [Table] Set [{Parameter}] = '{new_parameter_value}'
Where [product] = '{selected_product}' Or [Extra_column] = '{Extra_Column}'
这需要两个查询,也意味着我需要的列数是以前的两倍。我在找更优雅一点的



这是SQL Server 2012,{}表示我以脚本形式传递的值。

我最后做了类似于上面所做的事情,用户输入他们想要编辑的组(查看表时很容易选择您想要的组),如下所示:


我不得不为分组索引添加三列,但超过43个参数并没有给我的表大小增加多少。我没有考虑这样一个事实,即如果我为单个产品更改一个参数,这将从“组”中删除该参数,然后如果我对该参数进行组更改,我将覆盖更改后的值。我可以添加一个复选框,只更改该组中匹配的值,但无论哪种方式,用户都必须对自己的行为保持明智。幸运的是,他们可以在换桌子之前看到桌子

但是现在我丢失了这样一个信息:当我更改参数B时,我需要更改产品1-5的参数,但是如果我更改参数A,它只会更改其中一些参数
——这一行让我感到困惑。你到底想做什么?再详细一点就更好了。我已经编辑了我的帖子来澄清这个问题。我的问题是,您希望在表或excel文件中的什么位置进行更改?在sql表中。我希望能够根据多个产品在excel文件中是否共享该参数的同一单元格,一次更新多个产品的SQL表。更新了question.inner连接您自己的表,但将其设置为case-inner连接
Update [table]
Set [{Parameter}]={NewValue}
Where [Extra_Column] = '{Extra_Column}'