powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод всех вариантов сумм
5 сообщений из 5, страница 1 из 1
Вывод всех вариантов сумм
    #39706417
Ukey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Есть таблица:

ID | Model | Quantity | Price
-----------------------------------
1 | ABC | 1 | 10
2 | BCA | 2 | 20
3 | ACB | 4 | 30
4 | CBA | 6 | 40

Нужно вывести все варианты моделей, сумма Quantity которых, равна или больше задаваемого значения X

Например задано значение X = 8

Результат вывода:

1 - Строка
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10
1 | ABC | 1 | 10

2 - Строка
2 | BCA | 2 | 20
2 | BCA | 2 | 20
2 | BCA | 2 | 20
2 | BCA | 2 | 20

3 - Строка
3 | ACB | 4 | 30
3 | ACB | 4 | 30

4 - Строка
3 | ACB | 4 | 30
4 | CBA | 6 | 40

и т. д. Все возможные комбинации

Исключить такие выводы:
2 | BCA | 2 | 20
3 | ACB | 4 | 30
4 | CBA | 6 | 40

Т. к. строчки (3 | ACB | 4 | 30) и (4 | CBA | 6 | 40), уже соответствует требованию

В итоге подсчитать суммы всех комбинаций и вывести по возрастанию сумм комбинаций.


Фууууххх..... Надеюсь Вы меня поняли)))
...
Рейтинг: 0 / 0
Вывод всех вариантов сумм
    #39706423
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ukey,

какая версия MySQL ?
...
Рейтинг: 0 / 0
Вывод всех вариантов сумм
    #39706425
Ukey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

Версия клиента базы данных: libmysql - mysqlnd 5.0.12-dev - 20150407
...
Рейтинг: 0 / 0
Вывод всех вариантов сумм
    #39707295
Ukey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

И снова я)

Вроде форум живой, но результатов я так и не получил.

Продумал алгоритм перебора строк

Условие то же.
Нужно вывести все варианты моделей, сумма Quantity которых, равна или больше задаваемого значения X

Например задано значение: $X = 8

SELECT ID, Model, Quantity, Price FROM Device WHERE Quantity < $X ORDER BY Quantity DESC

t1
ID | Model | Quantity | Price
-----------------------------------
1 | ABC | 4 | 10
2 | BCA | 3 | 20
3 | ACB | 2 | 30
4 | CBA | 1 | 40



Алгоритм таков

Выбираем 1 строку из таблицы 1 работаем пока с ней

1 | ABC | 4 | 10

Создаем вирт. копию t1:

t2
xID | xModel | xQuantity | xPrice
-----------------------------------
1 | ABC | 4 | 10
2 | BCA | 3 | 20
3 | ACB | 2 | 30
4 | CBA | 1 | 40

Пробегаемся по t2 и берем значения xQuantity из первой строки и суммируем с Quantity. Если Quantity + xQuantity >= X
Записываем во временную таблицу:

1 | ABC | 4 | 10
1 | ABC | 4 | 10

Далее пробегаемся по t2 и берем зачения xQuantity из первой строки и суммируем с Quantity t1 . Если Quantity + xQuantity >= X
Записываем во временную таблицу:

1 | ABC | 4 | 10
2 | BCA | 3 | 20

Тут сумма Quantity + xQuantity < X, тогда пробегаемся по этой же строчке из t2 и еще раз прибавляем значения, т.е. Quantity + xQuantity + xQuantity = 10 >=X

И т.д. с каждой строкой.

t1.row1 -> t2.row1
t1.row1 -> t2.row2
t1.row1 -> t2.row3
t1.row1 -> t2.row4

t1.row2 -> t2.row2
t1.row2 -> t2.row3
t1.row2 -> t2.row4

t1.row3 -> t2.row3
t1.row3 -> t2.row4

t1.row4 -> t2.row4

Обратите внимание, что каждая новая строка t1, начинает делать поиск в t2 со своей копии.

Уже три дня мучаюсь, никак не могу написать этот алгоритм. Не на столько силен в программировании((

Подскажите хотя бы куда копать?

Большое спасибо за внимание
...
Рейтинг: 0 / 0
Вывод всех вариантов сумм
    #39707299
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это - задача не для SQL. То есть её, конечно, можно решить и в рамках DBMS, но это будет хранимая процедура, фактически написанная на алгоритмическом языке, в роли коего выступит диалект конкретной DBMS.

Гораздо разумнее решать эту задачу на клиенте.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вывод всех вариантов сумм
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]