У меня есть три таблицы с названием квитанция, квитанция. В таблице квитанций хранится запись информации о квитанции, в то время как квитанция хранит данные о сходах в этой квитанции.
Получение таблицы:
66 | 333 | 1600
67 | 332 | 1500
68 | 215 | 300
Таблица получения:
66 | 21 | 50
66 | 33 | 50
66 | 55 | 1500
67 | 55 | 1500
68 | 12 | 100
68 | 44 | 100
68 | 22 | 100
Столовые сборы:
12 | Xbre | 0
21 | Падение | 0
22 | Поиск | 0
33 | Пермь | 0
44 | Afee | 0
55 | TFee | 1
Мне нужен запрос, который будет отображать записи на основе выбранного поля, если поле "INASSESS" равно 0 или 1 и SUM TOTAL AMOUNT ON RECEIPDET.
DESIRED OUTPUT
получениеno | плательщик | SUM (recedet.amount) | inassess
66 | 333 | 1500 | 1
67 | 332 | 1500 | 1
ИЛИ ЖЕ
получениеno | плательщик | SUM (recedet.amount) | inassess
66 | 333 | 100 | 0
68 | 215 | 300 | 0
до сих пор мне приходится обрабатывать отдельный запрос для обеих таблиц. и я хочу сделать это как один запрос, если кто-то может мне помочь, я буду очень благодарен. заранее спасибо
SELECT
receipt.receiptno,
receipt.amount
FROM
receipt ORDER
BY LENGTH(receipt.receiptno), receipt.receiptno
SELECT
Sum(receiptdet.amount),
receiptdet.student,
feetype.inassess,
receiptdet.receiptno
FROM
receiptdet
Left Join fees ON receiptdet.fee = fees.id
Left Join feetype ON fees.feetype = feetype.id
WHERE
feetype.inassess = '0' AND
receiptdet.receiptno = '66'
Вы можете использовать JOINs
чтобы собрать все таблицы вместе со своими столбцами связывания, затем использовать GROUP BY
для группировки данных в соответствии с receiptno
и inassess
. Один запрос предоставит вам все требуемые данные:
SELECT r.receiptno, r.payor, SUM(rd.amount) AS fees, f.inassess
FROM receipt r
LEFT JOIN receiptdet rd ON rd.receiptno = r.receiptno
JOIN fees f ON f.id = rd.fee
GROUP BY f.inassess, r.receiptno
Для ваших данных образца это дает:
receiptno payor fees inassess
66 333 100 0
68 215 300 0
66 333 1500 1
67 332 1500 1