За последние 24 часа нас посетили 17833 программиста и 1605 роботов. Сейчас ищут 1946 программистов ...

Помогите построить запрос

Тема в разделе "MySQL", создана пользователем Alekzander, 30 ноя 2009.

  1. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    Народ помогите построить запрос. Никак не могу придумать как...
    есть табла:
    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% товара
     
  2. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Ровно 20%?
    А где всего товара и сколько продано? Или где проценты?
     
  3. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    Проданно указывается в параметре prodano
    Всего товара указывается в параметре vsego
    (т.е. vsego -> Всего товаров 50->количество
    prodano-> Проданно 23-> количество проданных товаров)

    Количество процентов задается пользователем.
     
  4. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    если vsego - это все что было, а не то что осталось, то [sql]select * from tabla where vsego/prodano>=5[/sql] потому что 20% это пятая часть. Или если проценты задаются пользователем, то вместо 5 надо ставить 100/procent
     
  5. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    karakh
    Не подходит т.к. у нас несколько записей с такими полями и номер магазина мы так не получим...
     
  6. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    ой блин. я посмотрел на твою таблицу подробнее. это не таблица, это трындец какой-то
    надо пробовать что-то вроде
    [sql]select magazin from (select * from tabla t1 join tabla t2 on t1.id=t2.id) t3 where t3.vsego/t3.prodano>=5[/sql]
     
  7. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    karakh
    Что табла просто пипец это факт! Но структуру БД разрабатывал не я. Мне всего лишь надо сделать вывод...
     
  8. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    Неужели никто не задумывался (не сталкивался) с подобным? :shock:
     
  9. Clear

    Clear Активный пользователь

    С нами с:
    2 дек 2009
    Сообщения:
    4
    Симпатии:
    0
    Один из вариантов

    Шурик, попробуй этот запросик. Не самый оптимальный, но на скорую руку

    Код (Text):
    1.  
    2. SELECT t1.magazin,
    3.        t1.param,
    4.        t1.value,
    5.        t2.param,
    6.        t2.value
    7.   FROM `tab` t1,
    8.   (
    9.      SELECT *
    10.      FROM `tab`
    11.      WHERE param = 'prodano'
    12.   ) t2
    13. WHERE t1.param = 'vsego'
    14.    AND t2.magazin = t1.magazin
    15.    AND t2.value / t1.value >= 0.2
    Как понимаешь, в последней строчке задаешь необходимое условие для процента продаж.
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Смени структуру базы, иначе потом боком обернется.
     
  11. Clear

    Clear Активный пользователь

    С нами с:
    2 дек 2009
    Сообщения:
    4
    Симпатии:
    0
    ТС сказал, что структура не его. Думаю, если бы была возможность изменить структуру, то вопроса по работе с такой корявой базой не возникло бы.
    А то, что подобная структура может обернуться боком - это факт.
     
  12. Alekzander

    Alekzander Активный пользователь

    С нами с:
    24 июл 2006
    Сообщения:
    104
    Симпатии:
    0
    Адрес:
    Из поднебесной
    Kreker Структуру разрабатывал не я (иначе сам себе бы руки оторвал) и изменять её нельзя.
    Clear спасибо, попробую!