выделите строки и общее количество повторяющихся строк

Я пытаюсь заполнить все счета, относящиеся к клиенту, имеющему уникальную строку для каждого счета — TVal столбец должен добавить (сумму) к сумме, если номер счета повторяется, общая сумма tval должна быть псевдонимом в соответствии с указанным этикетка (Колонка). Есть только два типа этикеток «crn» & «acr», если обоих нет, тогда значение может быть нулевым

Я пробовал так много способов добиться этого, но я не смог, это самый близкий, который я мог получить

SELECT
i.si_num AS `id`,
DATE_FORMAT(i.si_date, '%d-%b-%Y') AS `date`,
i.si_tr AS `tr`,
d.dl_name AS `customer`,
i.si_net_value AS `net`,
DATEDIFF(CURDATE(), si_date) AS Days,
t.value AS tval,
t.label AS label
FROM
invoices AS i
LEFT JOIN
dealer AS d ON i.si_tr = d.dl_id
LEFT JOIN
transactions AS t ON i.si_num = t.invoice
WHERE
i.si_tr = 'TR580494'
ORDER BY `si_num` DESC;

и это результат, который я получаю
введите описание изображения здесь

Пожалуйста помоги.

0

Решение

Используя SQL-выражение, попробуйте использовать DISTINCT для tval. Пример:

ВЫБЕРИТЕ DISTINCT tval

0

Другие решения

SELECT
i.si_num AS `id`, DATE_FORMAT(i.si_date, '%d-%b-%Y') AS `date`,
i.si_tr AS `tr`, d.dl_name AS `customer`, i.si_net_value AS `net`,
DATEDIFF(CURDATE(), si_date) AS Days, SUM(t.value) AS tval,
GROUP_CONCAT(t.label) AS label
FROM invoices AS i
INNER JOIN dealer AS d ON i.si_tr = d.dl_id
INNER JOIN transactions AS t ON i.si_num = t.invoice
WHERE i.si_tr = 'TR580494'
GROUP BY id, date, tr, customer, net, Days
ORDER BY `si_num` DESC;
0

По вопросам рекламы [email protected]