【发布时间】:2021-08-09 18:18:29
【问题描述】:
记分卡表:
| lsp | werks | Success |
|---|---|---|
| AAA | ZZZ | |
| BBB | YYY | |
| CCC | XXX |
库存表:
| lsp | werks | Status |
|---|---|---|
| AAA | ZZZ | SUCCESS |
| AAA | ZZZ | SUCCESS |
| AAA | ZZZ | SUCCESS |
| AAA | ZZZ | SUCCESS |
| BBB | YYY | SUCCESS |
| BBB | YYY | SUCCESS |
| BBB | YYY | SUCCESS |
| BBB | YYY | FAILURE |
我想编写一个查询来更新 Scorecard 表,其中包含已定义 lsp 上 Inventory 表中的成功计数
这是我在 SQL Server 中的查询:
UPDATE [Scorecard]
SET Success = (SELECT COUNT([INVENTORY].[Status])
FROM [INVENTORY]
WHERE [INVENTORY].STATUS = SUCCESS
AND [INVENTORY].[werks] = [Scorecard].[werks])
【问题讨论】:
-
你的问题到底是什么?请edit您的问题并添加一些详细信息。
-
一般情况下您不应该存储此类信息;一旦插入、更新或删除行,
COUNT值就会过期。这意味着您要么经常有过时的数据,要么必须有一些流程来不断更新表,要么实现触发器。你最好创建一个VIEW。 -
同意拉努。如果读取性能有问题,请使用索引视图。
标签: sql sql-server tsql