У меня есть две таблицы:
Счет-фактура
id | name | invoice_number | invoice_total
бухгалтерский баланс
id | name | invoice_number | amount_received | discount
Я хочу, чтобы запрос SQL присоединился к ним, сгруппированным по имени, и хочу, чтобы сумма invoice_total из таблицы счетов, а также сумма сумма_полученных сумм и сумма скидки для отдельного имени из таблицы баланса.
Результат должен быть:
name | sum(invoice_total) | sum(amount_received) | sum(discount)
Любая помощь будет принята с благодарностью.
Предполагая, что вам нужно только точное совпадение для обеих сказок между именами. Вы можете использовать внутреннее соединение и группировать по
select table_1.name, sum(a.invoce_total), sum(AMOUNT_RECEIVED), sum(DISCOUNT)
from invoice table_1
inner join BALANCESHEET table_2 on table_1.name = table_2.name
group by table_1.name
если вам нужно также частичное совпадение, вы можете использовать левое соединение
select table_1.name, sum(a.invoce_total), sum(AMOUNT_RECEIVED), sum(DISCOUNT)
from invoice table_1
left join BALANCESHEET table_2 on table_1.name = table_2.name
group by table_1.name
Возможно, потребуется немного настроить, чтобы учесть структуру вашей базы данных, но попробуйте это:
select
sum(invoice.invoice_total) - sum(balancesheet.amount_received) - sum(balancesheet.discount) as total
from
invoice
left join
balancesheet
on
invoice.name = balancesheet.name
group by
invoice.name
Пытаться
SELECT
`NAME`,
SUM(`INVOICE_TOTAL`) AS invTotal,
SUM(`AMOUNT_RECEIVED`) AS amtRxd,
SUM(`DISCOUNT`) AS totalDiscount
FROM `TABLE-1` T1
LEFT JOIN `TABLE-2` T2
ON T1.NAME=T2.NAME
GROUP BY T1.NAME