У меня есть эти 3 таблицы: таблицы, резервирование и table_reservation. Последним является сводка, дело в том, что я хочу суммировать сумму каждого бронирования в соответствии с заданной датой, но без дубликатов, то есть резервирование с 3 взятыми таблицами, эти 3 записи добавляются в сводку Таблица и сумма в 3 раза превышает сумму бронирования, что я не хочу.
Я оставляю таблицы и мой код.
table_reservation
| date | table_id | reservation_id |
| 2019-06-12 | 2 | 1 |
| 2019-06-12 | 3 | 1 |
| 2019-06-12 | 4 | 1 |
| 2019-06-12 | 1 | 2 |
reservation
| id | name | emp_id | amount | other |
| 1 | Luis Miguel | 2 | 200 | vdvvdvdv |
| 2 | carloz | 2 | 234 | dwdq |
tables
| id | name |
| 1 | A1 |
| 2 | B2 |
| 3 | A2 |
| 4 | A4 |
| 6 | B4 |
PHP-код
DB::table('reservation')
->join('table_reservation', 'reservation.id', '=', 'table_reservation.reservation_id')
->join('tables', 'table_reservation.mesa_id', '=', 'tables.id')
->join('empleados', 'reservation.emp_id', '=', 'emp.id')
->select('reservation.id',DB::raw('group_concat(tables.name) as y'),'reservation.name', 'emp.name as x','reservation.amount','reservation.other', 'table_reservation.date', DB::raw("SUM(reservation.amount) as count"))
->select(DB::raw("SUM(reservation.amount) as count"))
->distinct()
->groupBy('reservation.id')
->where('table_reservation.date',$date)->get();
Я получаю следующее:
[{"count":"600"},{"count":"234"}]
должно быть 200 вместо 600