Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.07.2001, 01:00
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Подскажите пожалуйста, как написать запрос, выполняющий такие действия: SELECT MIN(COUNT(Field1)-Field2) FROM MyTable Сам я это реализовал через #tmp, а может можно обойтись без временной таблицы? Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2001, 05:52
|
|||
|---|---|---|---|
Получение MIN от выражения |
|||
|
#18+
SELECT COUNT(Field1)-MAX(Field2) FROM MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2001, 06:00
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Предлагаю такой вариант ( только count(field1) - зачем такое условие ???) select min(tab.t1) from (select count(field1)-field2 as t1 from mytable group by field2 ) tab ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2001, 13:09
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Я перестарался, упростив условие в своем вопросе. На самом деле есть 2 таблицы, 1-справочник, 2ую назовем склад, где каждая запись храниться отдельно. Т.е. приобретая какое-либо наименование по справочнику в количестве 5 штук в таблицу склад записываем 5 строк. А в справочнике есть свойство - Минимальный Остаток. При запуске программы я хочу получть не конкретные остатки на складе, а цифру характеризующую наименьший остаток, который должен быть всегда больше 0, с учетом минимально-допустимого остатка. Уфффф, кажется все. Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2001, 15:06
|
|||
|---|---|---|---|
Получение MIN от выражения |
|||
|
#18+
А попробуй так: select T.ID, min(T.Fld2-SubQ.Cnt) from Tbl2 T, (select ID, count(fld1) as Cnt from Tbl1 group by ID) SubQ where T.ID=SubQ.ID group by T.ID ну или что-то в этом роде... Правда, тормоза гарантирую . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.07.2001, 15:13
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Хм, а минимальный остаток для наименования хранится 1, или вы после каждой транзакции добавляете строку с новым остатком? Можете привести примеры строк в каждой из таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.07.2001, 01:30
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Поле 'Минимальный Остаток'(МО) храниться в справочнике вместе с наименованием в 1 записи. Т.е. если у Реактив-1 МО - 5 единиц, то при наличии его на складе в кол-ве 6 едениц, склад молчит, а если его осталось 5 и менее едениц - слкад начинает гундеть - срочно закупите Реактив-1. ) Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.07.2001, 07:53
|
|||
|---|---|---|---|
Получение MIN от выражения |
|||
|
#18+
Если я правильно понял: create table #spr(id int, minOst int) create table #sklad(id int) insert #spr select 1,3 insert #spr select 2,4 insert #sklad select 1 insert #sklad select 1 insert #sklad select 1 insert #sklad select 1 insert #sklad select 1 insert #sklad select 2 insert #sklad select 2 insert #sklad select 2 select p.id, count(*)-p.minOst from #sklad k, #spr p where k.id=p.id group by p.id,p.minOst Еще чтобы выбирать только те товары которых осталось меньше допустимого, можно добавить в конце строчку having count(*)-p.minOst<=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.07.2001, 15:07
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
2SergSuper Вы правилно меня поняли, насчет организации данных в таблицах, но результат я хотел иметь обобщенный, т.е. в виде 1 записи, отражающей наименьший остаток. Может это не информативно, но этот результат - всего лишь флаг, оповещающий о состоянии склада, вот. Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.07.2001, 06:02
|
|||
|---|---|---|---|
Получение MIN от выражения |
|||
|
#18+
неужели не очевидно? select top 1 p.id, count(*)-p.minOst from #sklad k, #spr p where k.id=p.id group by p.id,p.minOst order by count(*)-p.minOst ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.07.2001, 10:19
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.07.2001, 10:42
|
|||
|---|---|---|---|
Получение MIN от выражения |
|||
|
#18+
Еще вариант, может понадобиться нечто подобное if exists(select p.id from #sklad k, #spr p where k.id=p.id group by p.id,p.minOst having count(*)<p.minOst) begin ... end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.07.2001, 06:01
|
|||
|---|---|---|---|
|
|||
Получение MIN от выражения |
|||
|
#18+
Маленькое дополнение к скрипту: >> select top 1 p.id, count(*)-p.minOst >> from #sklad k, #spr p >> where k.id=p.id >> group by p.id,p.minOst >> order by count(*)-p.minOst Если на top 1 будет ругаться , то можно сделать так: set rowcount 1 >> select top 1 p.id, count(*)-p.minOst >> from #sklad k, #spr p >> where k.id=p.id >> group by p.id,p.minOst >> order by count(*)-p.minOst sen rowcount 0 -- обязательно!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1826064]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 376ms |

| 0 / 0 |
