Невозможно отобразить все записи с одинаковым идентификатором при присоединении к oracle xe 11g - PullRequest
0 голосов
/ 29 сентября 2018

Я получаю это сообщение при использовании этого запроса, что-то не так?

SELECT t.tanggal_transaksi, o.nama_lengkap, SUM(td.harga * td.qty) total
FROM transaksi t, transaksi_detail td, operator o
WHERE td.transaksi_id = t.transaksi_id AND o.operator_id = t.operator_id
GROUP BY t.transaksi_id

Обновлено: после использования ответа от @Barbaros Özhan, используя этот запрос:

SELECT t.tanggal_transaksi, o.nama_lengkap, SUM(td.harga * td.qty) total
  FROM transaksi t
 INNER JOIN transaksi_detail td ON ( td.transaksi_id = t.transaksi_id )
 INNER JOIN operator o ON ( o.operator_id = t.operator_id )
 GROUP BY t.tanggal_transaksi, o.nama_lengkap;

данные успешно отображаются.но возникает несколько проблем, значение одного и того же operator_id не может появляться более 1 раза.Вот пример данных:

+--------------+-------------+-------------------+
| TRANSAKSI_ID | OPERATOR_ID | TANGGAL_TRANSAKSI |
+--------------+-------------+-------------------+
|            1 |           5 | 09/29/2018        |
|            2 |           3 | 09/29/2018        |
|            3 |           3 | 09/29/2018        |
|            4 |           1 | 09/29/2018        |
|            5 |           1 | 09/29/2018        |
+--------------+-------------+-------------------+

После использования команды запроса вывод:

+-------------------+------------------+--------+
| TANGGAL_TRANSAKSI |   NAMA_LENGKAP   | TOTAL  |
+-------------------+------------------+--------+
| 09/29/2018        | Lina Harun       | 419800 |
| 09/29/2018        | Titro Kusumo     | 484000 |
| 09/29/2018        | Muhammad Kusnadi | 402000 |
+-------------------+------------------+--------+

При просмотре из таблицы операторов, есть 2 данных с тем же оператором, что ине читается

+-------------+------------------+
| OPERATOR_ID |   NAMA_LENGKAP   |
+-------------+------------------+
|           1 | Muhammad Kusnadi |
|           3 | Lina Harun       |
|           5 | Tirto Kusumo     |
+-------------+------------------+

1 Ответ

0 голосов
/ 29 сентября 2018

Вам необходимо включить столбцы в список SELECT t.tanggal_transaksi, o.nama_lengkap, также в список GROUP BY, но не в другие, такие как t.transaksi_id.Таким образом, вы можете использовать следующее без каких-либо проблем:

SELECT t.tanggal_transaksi, o.nama_lengkap, SUM(td.harga * td.qty) total
  FROM transaksi t
 INNER JOIN transaksi_detail td ON ( td.transaksi_id = t.transaksi_id )
 INNER JOIN operator o ON ( o.operator_id = t.operator_id )
 GROUP BY t.tanggal_transaksi, o.nama_lengkap;

Или вот это:

SELECT t.transaksi_id, SUM(td.harga * td.qty) total
  FROM transaksi t
 INNER JOIN transaksi_detail td ON ( td.transaksi_id = t.transaksi_id )
 GROUP BY t.transaksi_id;

PS Предпочитайте использовать стандарт ANSI-92 JOIN, а не старый тип запятых JOIN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...