172 похожих чатов

Всем привет, помогите понять где я накосячил у меня две

таблицы. deposits_requests со связью многие-к-одному к requests_chunk. Для каждого ключа из второй таблицы есть 3 записи в первой, где value = 10000000000000000. То есть в записи по айдишнику в request_chunk должно быть 30000000000000000, а пишет 90000000000000000. Видимо я написал код так, что бы он суммировал вообще все значения а не для каждого. Подскажите, как это можно исправить? Вот код

9 ответов

18 просмотров

так он на каждую запись сделал по 3

s-l Автор вопроса
Clir
так он на каждую запись сделал по 3

а как это можно исправить что бы он делал только для соответствующих? То есть что бы там было не 9 и много нулей, а 3

Покажите хотя бы запросы текстом (а лучше — и \d таблиц).

s-l Автор вопроса
Yaroslav Schekin
Покажите хотя бы запросы текстом (а лучше — и \d т...

UPDATE requests_chunk SET sum = (SELECT SUM(value) FROM deposit_requests WHERE link_uuid IN (SELECT uuid FROM requests_chunk WHERE link_uuid = uuid));

s l
UPDATE requests_chunk SET sum = (SELECT SUM(value)...

Лучше всегда в запросах, использующих больше одной таблицы (подзапроса), квалифицировать (явно указывать таблицу) все используемые поля. Вот тут вообще не видно, что с чем связано, например (более того, вполне возможно, что однажды Вы на подобном "подорвётесь", когда PostgreSQL "угадает" поле не той таблицы, которую Вы имели в виду).

s-l Автор вопроса
Yaroslav Schekin
Лучше всегда в запросах, использующих больше одной...

UPDATE requests_chunk SET sum = (SELECT SUM(value) FROM deposit_requests WHERE deposit_requests.link_uuid IN (SELECT uuid FROM requests_chunk WHERE deposit_requests.link_uuid = requests_chunk.uuid));

s l
UPDATE requests_chunk SET sum = (SELECT SUM(value)...

UPDATE requests_chunk SET sum = ( SELECT SUM(/*which table?*/value) FROM deposit_requests WHERE deposit_requests.link_uuid IN ( SELECT uuid FROM requests_chunk -- AS some_alias, the same table as updated WHERE deposit_requests.link_uuid = requests_chunk.uuid ) ); И \d таблиц мы так и не увидим? ;)

s-l Автор вопроса
Yaroslav Schekin
UPDATE requests_chunk SET sum = ( SELECT SU...

к сожалению не помогло, все равно 9 ставит вместо 3

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
22
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта