Я боролся с этим часами.Я пытаюсь обновить все значения с одинаковым значением SHORT # .Если ' SHORT # ' находится в 017_PolWpart2 , я хочу, чтобы это значение было обновлением соответствующего ' SHORT # ' в 017_WithdrawalsYTD_changelater ,Этот запрос на обновление просто отображает нули, но эти значения на самом деле не равны нулю.
Так сказать, 017_WithdrawalsYTD_changelater выглядит так:
SHORT# WithdrawalsYTD
1 0
2 0
3 0
4 0
5 0
и 017_PolWpart2 выглядит так:
SHORT# Sum_MTD_AGG
3 50
5 12
Я хочу это:
SHORT# WithdrawalsYTD
1 0
2 0
3 50
4 0
5 12
Но я получаю это:
SHORT# WithdrawalsYTD
1 0
2 0
3 0
4 0
5 0
Я приложил SQL дляЗапрос ниже.
Спасибо!
UPDATE 017_WithdrawalsYTD_changelater
INNER JOIN 017b_PolWpart2 ON [017_WithdrawalsYTD_changelater].[SHORT#] =
[017b_PolWpart2].[SHORT#]
SET [017_WithdrawalsYTD_changelater].WithdrawalsYTD = [017b_PolWpart2].[Sum_MTD_AGG];
РЕДАКТИРОВАТЬ: Поскольку я должен агрегировать на лету, я пытался это сделать.Все еще получаю всевозможные ошибки.Обратите внимание, что таблица 17a_PolicyWithdrawalMatch имеет вид:
SHORT# MTG_AGG WithdrawalPeriod PolDurY
1 3 1 1
1 5 1 0
2 2 1 1
2 22 1 1
Итак, я агрегирую:
SHORT# MTG_AGG
1 3
2 24
И помещаю эти агрегированные значения в 017_WithdrawalsYTD_changelater .
Я пытался сделать это так:
SELECT [017a_PolicyWithdrawalMatch].[SHORT#], Sum([017a_PolicyWithdrawalMatch].MTD_AGG) AS Sum_MTD_AGG
WHERE ((([017a_PolicyWithdrawalMatch].WithdrawalPeriod)=[017a_PolicyWithdrawalMatch].[PolDurY]))
GROUP BY [017a_PolicyWithdrawalMatch].[SHORT#]
UPDATE 017_WithdrawalsYTD_changelater INNER JOIN 017a_PolicyWithdrawalMatch ON [017_WithdrawalsYTD_changelater].[SHORT#] = [017a_PolicyWithdrawalMatch].[SHORT#] SET 017_WithdrawalsYTD_changelater.WithdrawalsYTD =Sum_MTD_AGG;
Мне не повезло ... Мне сказали, что оператор SELECT использует зарезервированное слово ...: (*