Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста, как написать запрос, выполняющий такие действия: SELECT MIN(COUNT(Field1)-Field2) FROM MyTable Сам я это реализовал через #tmp, а может можно обойтись без временной таблицы? Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2001, 01:00 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
SELECT COUNT(Field1)-MAX(Field2) FROM MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2001, 05:52 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
Предлагаю такой вариант ( только count(field1) - зачем такое условие ???) select min(tab.t1) from (select count(field1)-field2 as t1 from mytable group by field2 ) tab ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2001, 06:00 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
Я перестарался, упростив условие в своем вопросе. На самом деле есть 2 таблицы, 1-справочник, 2ую назовем склад, где каждая запись храниться отдельно. Т.е. приобретая какое-либо наименование по справочнику в количестве 5 штук в таблицу склад записываем 5 строк. А в справочнике есть свойство - Минимальный Остаток. При запуске программы я хочу получть не конкретные остатки на складе, а цифру характеризующую наименьший остаток, который должен быть всегда больше 0, с учетом минимально-допустимого остатка. Уфффф, кажется все. Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2001, 13:09 |
|
||
|
Получение 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:06 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
Хм, а минимальный остаток для наименования хранится 1, или вы после каждой транзакции добавляете строку с новым остатком? Можете привести примеры строк в каждой из таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2001, 15:13 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
Поле 'Минимальный Остаток'(МО) храниться в справочнике вместе с наименованием в 1 записи. Т.е. если у Реактив-1 МО - 5 единиц, то при наличии его на складе в кол-ве 6 едениц, склад молчит, а если его осталось 5 и менее едениц - слкад начинает гундеть - срочно закупите Реактив-1. ) Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2001, 01:30 |
|
||
|
Получение 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, 07:53 |
|
||
|
Получение MIN от выражения
|
|||
|---|---|---|---|
|
#18+
2SergSuper Вы правилно меня поняли, насчет организации данных в таблицах, но результат я хотел иметь обобщенный, т.е. в виде 1 записи, отражающей наименьший остаток. Может это не информативно, но этот результат - всего лишь флаг, оповещающий о состоянии склада, вот. Всех благ, Александр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2001, 15:07 |
|
||
|
Получение 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, 06:02 |
|
||
|
Получение 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2001, 10:42 |
|
||
|
Получение 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 -- обязательно!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2001, 06:01 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32009699&tid=1826064]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 262ms |
| total: | 432ms |

| 0 / 0 |
