#sql #oracle #oracle11g #oracle10g #oracle-sqldeveloper
Вопрос:
У меня есть таблица A, таблица B, таблица C, и я хочу взять MAX(идентификатор заказа) и сгруппировать по из B и MAX(дата) и сгруппировать по из C
Таблица А:
SNO
AccNo
Таблица В:
SNO(FK)
OrderId
Таблица C:
AccNo(FK)
date
Я написал что-то вроде этого:
select b.max(OrderId), other columns
from a, b, c
where a.sno = b.sno
and a.accno = c.accno
and (b.orderid, c.date) IN (select b.orderid, max(c.date)
from a, b,c
where a.sno = b.sno
and a.accno = c.accno
group by b.orderid)
group by other columns
Каким-то образом это работает хорошо, но не дает желаемых результатов. Был бы признателен за некоторую помощь в этом.
Комментарии:
1.
JOIN
.JOIN
.JOIN
. Примеры данных и желаемые результаты действительно помогли бы.
Ответ №1:
Вы можете сделать:
select a.AccNo, max(b.orderId) as maxOrderId, max(myDate) as maxDate
from tableA a
inner join tableB b on a.SNO = b.SNO
inner join tableC c on a.AccNo = c.AccNo
group by a.AccNo
Это то, чего ты хотел?