Вы хотите присоединиться к 3 таблицам, а затем сгруппировать их с помощью идентификаторов счетов и других соответствующих данных.
-- the select line, as well as getting your columns to display, is where you'll work
-- out your computed columns, or what are called aggregate functions, such as tpaid and balance
SELECT c.cust_name, p.bill_id, b.bill_amount, SUM(p.paid_amount) AS tpaid, b.bill_date, b.bill_amount - SUM(p.paid_amount) AS balance
-- joining up the 3 tables here on the id columns that point to the other tables
FROM cust_info c INNER JOIN bill_info b ON c.cust_id = b.cust_id
INNER JOIN paid_info p ON p.bill_id = b.bill_id
-- between pretty much does what it says
WHERE b.bill_date BETWEEN '2013-01-01' AND '2013-02-01'
-- in group by, we not only need to join rows together based on which bill they're for
-- (bill_id), but also any column we want to select in SELECT.
GROUP BY c.cust_name, p.bill_id, b.bill_amount, b.bill_date
Краткий обзор группы по: Это будет принимать ваш результирующий набор и smoosh строк вместе, основываясь на том, где они имеют одни и те же данные в столбцах вы даете ему. Поскольку каждый счет будет иметь одно и то же имя, количество, дату и т. Д., Мы можем группировать те, а также идентификатор счета, и мы получим запись для каждого счета. Если бы мы хотели сгруппировать его по p.paid_amount, то, поскольку каждый платеж имел бы другой из них (возможно), вы получили бы запись для каждого платежа, а не за каждый счет, что не то, d хотите. Когда группа сгруппировала эти строки вместе, вы можете запускать агрегированные функции, такие как SUM (столбец). В этом примере SUM (p.paid_amount) суммирует все платежи, которые имеют этот bill_id, чтобы определить, сколько было оплачено. Для получения дополнительной информации ознакомьтесь с W3Schools chapter on group by в своих учебниках по SQL.
Надеюсь, я понял это правильно и это вам поможет.
Спасибо Крейг, это сработало! но я не очень разбирался в том, как этот запрос распространяется, поскольку я новичок в sql ... :) –
@Nikhil, Хорошо, я расширил свой ответ с некоторыми комментариями и объяснениями, которые, надеюсь, сделают вещи немного яснее. Надеюсь это поможет. –
Да. это хорошее объяснение. Благодарю. –