Я пытаюсь выбрать наибольшее значение (рассчитанное) для группы с отличным выбором других столбцов
в соответствии с приведенными ниже данными таблицы. Я хочу выбрать строки с наибольшим количеством(Qty-Plan) и отдельный выбор Len и Wid
Данные таблицы следующие:
+-----------+-----------+---------+---------+------------+---------+
| Ident | Name | Len | Wid | Qty | Plan |
+-----------+-----------+---------+---------+------------+---------+
| 12345 | Name1 | 1500 | 1000 | 20 | 5 |
| 23456 | Name1 | 1500 | 1000 | 30 | 13 |
| 34567 | Name1 | 2500 | 1000 | 10 | 2 |
| 45678 | Name1 | 2500 | 1000 | 10 | 4 |
| 56789 | Name1 | 1500 | 1200 | 20 | 3 |
| 00001 | Name2 | 1500 | 1200 | 10 | 6 |
| 00002 | Name2 | 1500 | 1200 | 20 | 7 |
| 00003 | Name3 | 1500 | 1200 | 30 | 5 |
| 00004 | Name3 | 1500 | 1200 | 40 | 4 |
+-----------+-----------+---------+---------+------------+---------+
с моим запросом я не могу стереть "более низкие" значения:
select a.Ident ,a.Name, a.Len,a.Wid, a.Qnt-a.Plan as Amount
from table a
join (select ident, max(Qnt - Plan) Amount
from table
where Name = 'Name1'
group by Ident, Len, Wid) b
on b.Ident = a.Ident and b.Amount = a.Qnt-a.Plan
order by Amount desc
не по теме вопрос: почему я не могу использовать -> где b.Amount = a.Amount (он не знает a.Amount) ???
мой желаемый выбор должен выглядеть так:
+-----------+-----------+---------+---------+------------+
| Ident | Name | Len | Wid | Amount |
+-----------+-----------+---------+---------+------------+
| 56789 | Name1 | 1500 | 1200 | 18 |
| 23456 | Name1 | 1500 | 1000 | 17 |
| 34567 | Name1 | 2500 | 1000 | 8 |
+-----------+-----------+---------+---------+------------+
заранее большое спасибо