powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посчитать комплекты и вывести наименьший результат из его составляющей.
11 сообщений из 11, страница 1 из 1
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099040
s_pashin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, у меня есть таблица комплекты ItemsSet с полями
"ItemSetID" ."ItemID"."OwnerID"
1 1 3
2 2 3
3 32 31
4 32 35

Таблица остатки ItemRests с полями

StorageID ItemID Quantity
1 1 +5
1 1 -1
1 2 +5
1 32 +1
1 32 +5
Поле OwnerID это комплект а ItemID это из каких комплектов состоит
Нужно посчитать все комплекты и оставить наименьшее значение в комплекте получить вот такой результат
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099042
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в форум "Работа"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099044
s_pashin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сам запрос
SELECT
"dcItemSets"."ItemSetID",
"dcItemSets"."ItemID",
"dcItemSets"."OwnerID",
SUM(coalesce("rgItemRests"."Quantity", 0))/"dcItemSets"."Quantity" AS "Rest"
FROM "dcItemSets"
--INNER JOIN "rgItemRests" on "rgItemRests"."ItemID"="dcItemSets"."ItemID"
LEFT OUTER JOIN "rgItemRests" on "dcItemSets"."ItemID"="rgItemRests"."ItemID"
WHERE
("dcItemSets"."ItemID"="rgItemRests"."ItemID" or ("rgItemRests"."ItemID" IS NULL))AND
("StorageID"=1 OR ("StorageID" IS NULL))AND
("dcItemSets"."Quantity">0)
GROUP BY "dcItemSets"."OwnerID", "dcItemSets"."Quantity", "dcItemSets"."ItemID", "dcItemSets"."ItemSetID"
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099046
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
построитель запросов детектирую я.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099048
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_pashin,

напишите в нормальных тегах. И DDL таблиц дайте. У Вас запрос не совпадает с таблицами. Например, поле "dcItemSets"."Quantity". Что это?
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099057
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_pashin,

ещё и версию ФБ хорошо бы знать.
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099068
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI
s_pashin,

ещё и версию ФБ хорошо бы знать.
А лучше - версию вуза и номер группы ;)
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099116
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И телефон препода.
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099128
s_pashin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TABLE "dcItemSets" (
"ItemSetID" TID NOT NULL /* TID = INTEGER NOT NULL */,
"OwnerID" TID /* TID = INTEGER NOT NULL */,
"ItemID" TID /* TID = INTEGER NOT NULL */,
);



CREATE TABLE "rgItemRests" (
"rgItemRestID" TID NOT NULL /* TID = INTEGER NOT NULL */,
"StorageID" TID NOT NULL /* TID = INTEGER NOT NULL */,
"ItemID" TID NOT NULL /* TID = INTEGER NOT NULL */,
"Quantity" "TQuantity" NOT NULL /* "TQuantity" = NUMERIC(15,3) DEFAULT 0 NOT NULL */
);
ItemSetIDOwnerIDItemIDQuantity13112321332311432351

rgItemRestIDStorageIDItemIDQuantity65612-265713-266512-166613-166711-167512-167613-185913-186011-1122811-4122912012302141231220158311-2161212-1161311-1161413-1162112-1162211-1162313-1166612-1170112-11704124170711-1171411-11715131171613-1172311-11724131172513-1173211-11733131173413-1174311-2174412-21745132174613-2175511-1175612-11757131175813-1176711-3176812-31769133177013-3177911-1178012-11781131178213-1179111-1179212-11793131179413-1180311-2180412-21805132180613-2181511-1181612-11817131181813-11821132-1183011-1183112-11832131183313-11845212018462220190011-1

Результат вот такого вида наименьшее число остатка в комплекте
OwnerIDItemIDRest32-53231-9

SELECT -- Расчет составных товаров
"dcItemSets"."OwnerID",
"dcItemSets"."ItemID",
SUM(coalesce("rgItemRests"."Quantity", 0))/"dcItemSets"."Quantity" AS "Rest"
FROM "dcItemSets"
LEFT OUTER JOIN "rgItemRests" on "dcItemSets"."ItemID"="rgItemRests"."ItemID"
where
("dcItemSets"."ItemID"="rgItemRests"."ItemID" or ("rgItemRests"."ItemID" IS NULL))AND
("StorageID"=1 OR ("StorageID" IS NULL))AND
("dcItemSets"."Quantity">0)
GROUP BY
"dcItemSets"."OwnerID",
"dcItemSets"."ItemID",
"dcItemSets"."Quantity"
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099130
s_pashin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI
s_pashin,

ещё и версию ФБ хорошо бы знать.

FB2.5
...
Рейтинг: 0 / 0
Посчитать комплекты и вывести наименьший результат из его составляющей.
    #40099163
s_pashin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,

/"dcItemSets"."Quantity" это поле не влияет его можно не считать
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посчитать комплекты и вывести наименьший результат из его составляющей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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