Я застрял с кодом в T-SQL. Я попытался обновить глобальный результат из нескольких строк истина / ложь только с одним условием, если любое из всех значений из «столбца значений» истинно, тогда глобальное значение истинно. Столбцы REF и REF_GLOBAL одинаковы.
Как в этом примере:
Здесь есть только один REF, но я получил что-то вроде REF1, REF2, REF3 и т.д ...
SOURCE_TABLE:
+----+-------+-------+-------+
|REF |VALUE_1|VALUE_2|VALUE_3|
+----+-------+-------+-------+
|REF1| FALSE | TRUE | FALSE |
|REF1| TRUE | FALSE | FALSE |
|REF1| TRUE | FALSE | FALSE |
|REF1| FALSE | FALSE | FALSE |
+----+-------+-------+-------+
GLOBAL_TABLE :
+-----------+-------+-------+-------+
|REF_GLOBAL |VALUE_1|VALUE_2|VALUE_3|
+-----------+-------+-------+-------+
|REF1_GLOBAL| 1 | 1 | 0 |
+-----------+-------+-------+-------+
Когда есть только одна строка, это легко:
UPDATE T1
SET T1.VALUE_1 = (CASE WHEN T2.VALUE_1 = 'TRUE' THEN 1 ELSE 0 END),
T1.VALUE_2 = (CASE WHEN T2.VALUE_2 = 'TRUE' THEN 1 ELSE 0 END),
T1.VALUE_3 = (CASE WHEN T2.VALUE_3 = 'TRUE' THEN 1 ELSE 0 END)
FROM GLOBAL_TABLE T1, SOURCE_TABLE T2
WHERE T1.REF = T2.REF_GLOBAL
Но я застреваю, когда хочу сделать это из несколькихзначение к одному значению, учитывая, что если хотя бы одно значение истинно, то глобальный результат равен 1.
Я уверен, что это связано с выражением if с предложением any, но даже после чтения несколькихДокументация и форум Я не могу найти, как с этим справиться.
Надеюсь, вы мне поможете.