За последние 24 часа нас посетил 16631 программист и 1681 робот. Сейчас ищут 886 программистов ...

Order, group и Sum

Тема в разделе "PHP и базы данных", создана пользователем webage, 28 мар 2016.

  1. webage

    webage Новичок

    С нами с:
    28 мар 2016
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте, случайно возникла проблема
    Имеется база данных с колонками id, item_id, part, p1, p2, p3

    Данные примерно такие
    1 | 23 | 9 | 1 | 10 | 2
    2 | 21 | 9 | 3 | 12 | 1
    3 | 22 | 9 | 6 | 10 | 6
    4 | 27 | 9 | 2 | 14 | 8
    5 | 23 | 7 | 1 | 10 | 4

    Код (PHP):
    1. SELECT *,(`p1`+`p2`) AS `p_summ` FROM `items_list` WHERE `part` IN (9, 7)  ORDER by `p_summ` DESC, `p3` DESC
    Сейчас выводиться 23 id со значениями p_summ = 11, хотя 23 id есть еще в part 7 и эти значения должны суммироваться и у 23 id p_summ = 22 должен быть

    До сегодняшнего дня все было отлично и я не замечал, что если у меня партия (part) одна то все отлично выводиться и сортируется по условиям которые мне необходимы. Когда возникает необходимость вывести товар из нескольких партий в запрос добавляется IN и перечисляются номера партий, но в этом случае данные по одинаковым товарам не ссумируются. Из данных которые указанны выше выведется только один товар item_id 23 и id 1, а id 5 учтён не будет.
    Если использовать group, то как потом сортировать выдачу?
    И ещё в некоторых выдачах используются суммы из нескольких столбцов, как тут быть с группировкой и выводом данных.
    Думаю решение не очень сложное, но сходу не смог придумать.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в данном запросе складываются два поля одной строки. Это будет работать всегда. Должно. Возможно у вас где-то ещё что-то не так, как вы думаете.

    сходу?