Сравнение полей в одном запросе

4you

еееххххх....
Сравнение полей в одном запросе

Добрый день
Имею такую ситуацию:
PHP:
+---------------------+
|  item   |   price   |
------------------------
| item1   |   3.00    |
------------------------
| item2   |   2.50    |
------------------------
| item1   |   1.00    |
------------------------
| item3   |   4.75    |
------------------------
| item1   |   1.50    |
------------------------
| tax     |   5.50    |
------------------------
Вопрос: можно ли в одном запросе проверить равна ли сумма поля price при item=item1 значению поля price при item=tax?
Заранее благодарю
 

4you

еееххххх....
Нет, не обязательно, но интересно возможно ли это, и если да то примерно как?
 

Demiurg

Guest
возможно.
в самосвале людей тоже возможно перевозить. штабелями погрузить а вперед.
 

ForJest

- свежая кровь
Можно.
[sql]
CREATE TEMPORARY TABLE tmp_cmp SELECT SUM(IF(item = 'item1'), price, 0) item1, SUM(IF(item = 'tax'), price, 0) tax FROM my_table WHERE item1 IN ('item1', 'tax');
SELECT item1 = tax FROM tmp_cmp;
[/sql]
Это так - для общего развития. Вообще же в этой конкретной задаче достаточно
[sql]
SELECT item, SUM(price) price FROM my_table WHERE item1 IN ('item1', 'tax') GROUP BY item;
[/sql]
после чего выбрать два значения и сравнить в PHP.
Странная структура таблицы. Необходимо нормализовать - сделать отдельную таблицу item
id, item
и таблицу price
id_item, price
 

4you

еееххххх....
Всё понятно. Спасибо за помощью Воспользовался конструкцией из 2-ух запросов.
 

Demiurg

Guest
вообще то в два запрос делается гораздо легче
select sum(price) where item = 'item1';
select price where item='tax'
 

ForJest

- свежая кровь
Falc если это была шутка - то нужно ставить смайлики :)
Demiurg - а сравнение? Хотя да - я невнимательно прочитал - упустил, что нужно не сумма при tax, а значение...
 
Сверху