/>Для общего представления обратитесь к прилагаемому образцу данных и ожидаемому результату. Также теперь добавлены запросы на вставку. Я попытался объяснить приведенные ниже данные:
- Предположим, у меня в снежинке есть две таблицы — транзакция и оплата.
- таблице транзакций есть столбцы: tid, cid, доход1, доход2.
tid — это первичный ключ. cid может иметь значение null.
- id – это первичный ключ.
- tid всегда не равен нулю, но и не уникален.
- хэш может быть нулевым.
Правила:
- не все суммы транзакции присутствуют в платеже.
- для некоторого tid в таблице транзакций может быть хэш в таблице платежей.
- другой tid может присутствовать в таблице платежей, но с нулевым хешем .
Пожалуйста, обратитесь к прилагаемому образцу данных и ожидаемому результату.
допустим, в транзакции есть tid 123 с нулевым cid, но в таблице платежей имеется соответствующий хэш.
то же самое значение хеш-функции в таблице платежей также сопоставляется с транзакцией tid 770. Теперь этот tid 770 обратно в таблицу транзакций имеет свой cid, заполненный как cid_2.
мы хотим использовать эту ситуацию, чтобы значение cid cid_2 для tid 770 копируется в значение cid tid 123 в таблице транзакций из-за их общего хеша в таблице платежей.
Вопрос:
Мне нужно написать запрос снежинки для этого, чтобы заполнить все такие нулевые идентификаторы в таблице транзакций, где это возможно.
некоторые идентификаторы могут оставаться пустыми в таблице транзакций, если соответствующий хэш не найден в таблице платежей для соответствующего tid
Пример данные:
Транзакция:
TID
CID
доход1
доход2
123
null
1313121
1309075
456
null
1312312
1309076
789
null
1311503
1309077
312
null
1310694
1309078
345
null
1309885
1309079
678
null
1309076
1309080
679
null
1309077
1309081
770
cid_2
309885
1309079
880
cid_1
1309076
1309080
234
null
1309885
1309079
Оплата:
ID
TID
хеш
Доход
23423
123
3333
56
34534
456
1111
65
23423
789
2222< /td>
67
32432
880
1111
87
54754
770
3333
45
98797
312
null< /td>
65
14284
234
3333
54
Ожидаемый результат для окончательной таблицы транзакций: (жирным шрифтом значения являются новыми и достигаются с помощью ссылки на хэш платежа.
TID
CID
доход1
revenue2
123
cid_2
1313121
1309075
456
cid_1
1312312
1309076
789
null
1311503
1309077
312
null
1310694
1309078
345
null
1309885
1309079
678
null
1309076
1309080
679
null
1309077
1309081
770
cid_2
1309885
1309079
880
cid_1
1309076
1309080
234
cid_2
1309885
1309079
Вставьте запросы для транзакций и платежей:
CREATE TABLE transaction (
TID INT PRIMARY KEY,
CID VARCHAR(255), -- Assuming CID is a string, adjust type as needed
revenue1 INT,
revenue2 INT
);
INSERT INTO transaction (TID, CID, revenue1, revenue2)
VALUES
(123, NULL, 1313121, 1309075),
(456, NULL, 1312312, 1309076),
(789, NULL, 1311503, 1309077),
(312, NULL, 1310694, 1309078),
(345, NULL, 1309885, 1309079),
(678, NULL, 1309076, 1309080),
(679, NULL, 1309077, 1309081),
(770, 'cid_2', 1309885, 1309079),
(880, 'cid_1', 1309076, 1309080),
(234, NULL, 1309885, 1309079);
------------------------------------------------------------------------------------------
CREATE TABLE payment (
TPMID INT,
TID INT,
cardhash INT,
Revenue INT,
PRIMARY KEY (TPMID, TID) -- Assuming the combination of TPMID and TID is unique
);
INSERT INTO payment (TPMID, TID, cardhash, Revenue)
VALUES
(23423, 123, 3333, 56),
(34534, 456, 1111, 65),
(23423, 789, 2222, 67),
(32432, 880, 1111, 87),
(54754, 770, 3333, 45),
(98797, 312, NULL, 65),
(14284, 234, 3333, 54);
Подробнее здесь: https://stackoverflow.com/questions/793 ... -table-but
Мобильная версия