当前位置: 首页 > 知识库问答 >
问题:

用另一个表中的计数更新列:我的查询不起作用。我得到一个错误

程禄
2023-03-14

记分卡表:

库存表:

我想写一个查询更新记分卡表与成功计数从库存表上定义的lsp

这是我在SQL服务器中的查询:

UPDATE [Scorecard] 
SET Success = (SELECT COUNT([INVENTORY].[Status]) 
               FROM [INVENTORY]  
               WHERE [INVENTORY].STATUS = SUCCESS 
                 AND [INVENTORY].[werks] = [Scorecard].[werks])

共有2个答案

谷梁裕
2023-03-14

这是一种可能的方式。我已经清点了werk的分区。

 SELECT 
  COUNT (1) OVER (PARTITION BY Werks ORDER by   lsp ) AS [num]
  ,Werks
 INTO #Temp_A
 FROM       [INVENTORY] 
 WHERE [Status] ='SUCCESS'


UPDATE A
   SET Success = B.num
 FROM  [Scorecard] A
 INNER JOIN  #Temp_A B ON A.Werks =  B.Werks 

DROP TABLE #Temp_A
山煜祺
2023-03-14

正如评论中提到的,有一个很大的设计问题,但是要回答你的问题:

UPDATE [Scorecard] 
SET Success = (
        SELECT COUNT(*) 
        FROM [INVENTORY]  
        WHERE [INVENTORY].STATUS = 'SUCCESS'
        AND [INVENTORY].[werks] = [Scorecard].[werks]
        AND [INVENTORY].[lsp] = [Scorecard].[lsp]
              )
 类似资料:
  • 我有两个表:包含5列(col1、col2、col3、col4、val1)的表1和包含5列(col1、col2、col3、col4、val2)的表2。1.表1.val1不包含任何值。2.对于表1和表2来说,col1、col2、col3和col4是相同的,它们是主键。 我想做的是,当table1.col1=table2.col1和table1.col2=table2.col2和table1.col3=

  • 问题内容: 我需要根据从以下两个表中提取的数据创建一个新表: 第一表: 第二张表: 新表应包含一个“ Var”列和一个“Number”列,其中每个变量将包含一行带有cur_number的行,其余各行将包含第二个表的new_number列中的数字,其中。例如,在上面显示的示例中,对于A,将有一行,行数为10(其cur_number),另一行为“ 2”(因为2 <10,但是11>10)。 在我的示例中

  • 问题内容: 我试图用另一个表中找到的值更新一个表中的所有记录。 我尝试了相同基本查询的许多版本,并且始终收到相同的错误消息: 操作必须使用可更新的查询。 关于为什么此查询在Access DB中不起作用的任何想法? 也尝试了此操作,因为我意识到第二张表的每个型号都有多个型号记录-我只需要为每个型号找到第一条记录中的第一条说明。 …虽然仍然出现相同的错误。 问题答案: 您必须使用联接

  • 我想知道如何编写这个查询。 我知道这个实际的语法是假的,但它会帮助你理解我想要什么。我需要它的这种格式,因为它是一个大得多的查询的一部分。 我需要这所有返回在一个查询。 此外,它需要在一行中,因此以下操作将不起作用:

  • 问题内容: 我正在尝试根据另一个MySQL信息更新一个MySQL表。 我的桌子看起来像: 而表如下所示: 我想更新在与来自基于(存储在字符串字段)。 希望更新后的表如下所示: 我有一个有效的查询,但是非常慢: 这使我的CPU耗尽,最终导致超时,并且仅执行了一部分更新(有数千个要匹配的值)。我知道匹配的速度会很慢,但这是我必须将它们匹配在一起的唯一数据。 有没有更好的方法来更新这样的值?如果可以更快