2014-11-02 3 views
0

У меня есть таблица, в которой естьMysql выбрать первый и второй запрос

имя ORDER_NUMBER цена ID

и записи, т.е.

name = test 
    order_number=1 
    price=3 
    id=555 

    name=test2 
    order_number=2 
price=2 
    id=555 

    name = test3 
    order_number=1 
    price=5 
    id=556 

    name = test4 
    order_number=2 
    price=12 
    id=556 

имеется несколько входов с одинаковым идентификатором, и ORDER_NUMBER доходит до десяти. Мне нужно написать запрос, который будет сравнивать order_number = 1 и order_number = 2 для одного и того же идентификатора и вернуть их сострадание. IE цена заказа № 1/цена заказа № 2 с одинаковым идентификатором. Может кто-нибудь мне помочь?

ответ

0
SELECT t1.price/t2.price 
    FROM your_table t1, your_table t2 
    WHERE t1.id = t2.id 
    AND t1.order_number = 1 
    AND t2.order_number = 2 
+0

Они находятся в одной таблице, которую я имею в виду под номером заказа – Anak1n

+0

Да, в моем запросе 't1' и' t2' - два экземпляра одной и той же таблицы 'your_table' –

+0

Я бы дал вам 100 репутации для этого. Сначала я не видел ваш стол. Спасибо – Anak1n

1

Как примечание, вы также можете сделать это с помощью условной агрегации вместо join:

select id, (case when order_number = 1 then price end)/(case when order_number = 2 then price end) 
from table t 
group by id; 
+0

Я также попробую ваше решение. – Anak1n

0

попробовать это выбрать t1.price/t2.price от test11 t1, t2 test11 где t1 .id = t2.id и t1.order_number = 1 и t2.order_number = 2;

Смежные вопросы