Народ помогите построить запрос. Никак не могу придумать как... есть табла: id magazin param value 1 1 vsego 50 2 1 prodano 23 3 2 vsego 70 4 2 prodano 53 5 3 vsego 35 6 3 prodano 17 Необходимо выбрать номер магазина где проданно 20% товара
Проданно указывается в параметре prodano Всего товара указывается в параметре vsego (т.е. vsego -> Всего товаров 50->количество prodano-> Проданно 23-> количество проданных товаров) Количество процентов задается пользователем.
если vsego - это все что было, а не то что осталось, то [sql]select * from tabla where vsego/prodano>=5[/sql] потому что 20% это пятая часть. Или если проценты задаются пользователем, то вместо 5 надо ставить 100/procent
karakh Не подходит т.к. у нас несколько записей с такими полями и номер магазина мы так не получим...
ой блин. я посмотрел на твою таблицу подробнее. это не таблица, это трындец какой-то надо пробовать что-то вроде [sql]select magazin from (select * from tabla t1 join tabla t2 on t1.id=t2.id) t3 where t3.vsego/t3.prodano>=5[/sql]
karakh Что табла просто пипец это факт! Но структуру БД разрабатывал не я. Мне всего лишь надо сделать вывод...
Один из вариантов Шурик, попробуй этот запросик. Не самый оптимальный, но на скорую руку Код (Text): SELECT t1.magazin, t1.param, t1.value, t2.param, t2.value FROM `tab` t1, ( SELECT * FROM `tab` WHERE param = 'prodano' ) t2 WHERE t1.param = 'vsego' AND t2.magazin = t1.magazin AND t2.value / t1.value >= 0.2 Как понимаешь, в последней строчке задаешь необходимое условие для процента продаж.
ТС сказал, что структура не его. Думаю, если бы была возможность изменить структуру, то вопроса по работе с такой корявой базой не возникло бы. А то, что подобная структура может обернуться боком - это факт.
Kreker Структуру разрабатывал не я (иначе сам себе бы руки оторвал) и изменять её нельзя. Clear спасибо, попробую!