У меня есть 2 таблицы аукцион и клиентSQL (внутреннее соединение с отборным заявлением)
аукцион
custId|itemName|yearsUsed|bidPrice
1 | MacBook| 2 | 1500
3 | Dell | 1 | 1000
2 | MacBook| 2 | 1500
клиент
custId|custName
1 | tom
2 | jerry
3 | susan
Я хочу запросить для тех имени клиентов, имя элемента и цена торгов для тех, кто предложил такую же цену за товар и годы, используемые владельцем также
Следующий запрос возвращает имя элемента, который имеет ту же цену торгов по клиентам
SELECT ac.itemName,
ac.yearsUsed,
ac.bidPrice
FROM auction ac
GROUP BY ac.itemName,
ac.yearsUsed,
ac.bidPrice
HAVING COUNT(*) > 1;
выход
itemName yearsUsed bidPrice
----------------------------
MacBook 2 1500
Теперь я хочу, чтобы запросить имя клиента, который ставку по той же цене за пункт
SELECT ac.itemName,
ac.yearsUsed,
ac.bidPrice
FROM auction ac
INNER JOIN (
SELECT custName
FROM customer
) c
ON c.custId = ac.custId
GROUP BY ac.itemName,
ac.yearsUsed,
ac.bidPrice
HAVING COUNT(*) > 1;
Я получаю сообщение об ошибке
ERROR at line 1:
ORA_00904:"C"."CUSTID": invalid identifier
Я использую sqlplus
первый запрос SQL не возвращает имя клиента, и это то, что я борюсь с, потому что мне нужно, чтобы вывести имя клиента, который предложил цену такую же цену за предмет, а – user3213758
Какое имя клиента вы хотите, * tom * или * jerry *, и почему? –
Мне нужно вывести оба их имени, потому что у них была ставка за ту же цену за пункт «Macbook», а также на itemName, yearUsed и bidPrice за эту ошибку «Macbook» – user3213758