Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как выбрать минимальное значение (число прочтений - 2411 )
logarifm
Junior Member
**
Отсутствует



Сообщений: 92
Местоположение: Украина
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Как выбрать минимальное значение
18. Декабря 2007 :: 07:31
Печать  
Подскажите как применить конструкцию MIN()
  

я переписал бы мир, но Бог не дает мне исходники...
Наверх
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #1 - 18. Декабря 2007 :: 07:36
Печать  
Код
Выбрать все
MIN
Returns the minimum value in the expression.

Syntax
MIN ( [ ALL | DISTINCT ] expression )

Arguments
ALL

Applies the aggregate function to all values. ALL is the default.

DISTINCT

Specifies that each unique value is considered. DISTINCT is not meaningful with MIN and is available for SQL-92 compatibility only.

expression

Is a constant, column name, or function, and any combination of arithmetic, bitwise, and string operators. MIN can be used with numeric, char, varchar, or datetime columns, but not with bit columns. Aggregate functions and subqueries are not permitted.

Return Types
Returns a value same as expression.



Important  Distinct aggregates, for example AVG(DISTINCT column_name), COUNT(DISTINCT column_name), MAX(DISTINCT column_name), MIN(DISTINCT column_name), and SUM(DISTINCT column_name), are not supported when using CUBE or ROLLUP. If used, Microsoft® SQL Server™ returns an error message and ends the query.


Remarks
MIN ignores any null values.

With character data columns, MIN finds the value that is lowest in the sort sequence.

Examples
This example returns the book with the lowest (minimum) year-to-date sales.

USE pubs
GO
SELECT min(ytd_sales)
FROM titles
GO

Here is the result set:

-----------
111

(1 row(s) affected)

 

  
Наверх
ICQ  
IP записан
 
logarifm
Junior Member
**
Отсутствует



Сообщений: 92
Местоположение: Украина
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #2 - 18. Декабря 2007 :: 07:38
Печать  
О ... поучительно. Вот ответ:

use expo
select min(SP12972)
FROM SC12969 WITH (NOLOCK)
GROUP BY SP12972
HAVING SP12972 <0

Но мне нужно применить это в 1С
  

я переписал бы мир, но Бог не дает мне исходники...
Наверх
IP записан
 
logarifm
Junior Member
**
Отсутствует



Сообщений: 92
Местоположение: Украина
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #3 - 18. Декабря 2007 :: 07:47
Печать  
Пытаюсь сделать так:
ТекстЗапроса = "
     |SELECT
     |        $Номенклатура.Товар AS Товар,
     |     MIN(Номенклатура.ID_WMS)
     |FROM $Справочник.Номенклатура_WMS AS Номенклатура (NOLOCK)
     |";
     
     тДанныхНоменклатуры = глOpenConf.ВыполнитьИнструкцию(ТекстЗапроса);
     тДанныхНоменклатуры.ВыбратьСтроку();


тДанныхНоменклатуры = глOpenConf.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\SQLBASES\VUBORKA_SASHA\МИН.ЗНАЧЕНИЕ.ERT(39)}: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'ID_WMS'.
  

я переписал бы мир, но Бог не дает мне исходники...
Наверх
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #4 - 18. Декабря 2007 :: 07:54
Печать  
logarifm писал(а) 18. Декабря 2007 :: 07:47:
Пытаюсь сделать так:
     |     MIN(Номенклатура.ID_WMS)

Тебе же указывают на ошибку - отсутствует поле ID_WMS...
Если это у тебя поле в справочнике с таким названием то нужно писать так
MIN($Номенклатура.ID_WMS)
Если же тебе нужен минимальный идентификатора то
тогда так
MIN($Номенклатура.ID)
  
Наверх
ICQ  
IP записан
 
mvgfirst
Full Member
***
Отсутствует


В борьбе бобра с ослом
всегда побеждает бобро!

Сообщений: 152
Местоположение: Украина г. Кривой Рог
Зарегистрирован: 17. Августа 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #5 - 18. Декабря 2007 :: 07:56
Печать  
Ну и если ты хочешь получить минимальное значение по каждому товару то нужно еще использовать SQL конструкцию GROUP BY
  
Наверх
ICQ  
IP записан
 
logarifm
Junior Member
**
Отсутствует



Сообщений: 92
Местоположение: Украина
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #6 - 18. Декабря 2007 :: 08:02
Печать  
[/quote]

Если это у тебя поле в справочнике с таким названием то нужно писать так
MIN($Номенклатура.ID_WMS)

[/quote]
Да вот это мне и нужно))

вот теперь такая ошибка:
тДанныхНоменклатуры = глOpenConf.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\SQLBASES\VUBORKA_SASHA\МИН.ЗНАЧЕНИЕ.ERT(39)}: State 42000, native 8118, message [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'Номенклатура.SP12971' is invalid in the select list because it is not contained in an
aggregate function and there is no GROUP BY clause.

А все подправил группировки небыло.

Но мне выводит все поле, а мне нужно выбрать только Минимальное! В чем ошибка.
  

я переписал бы мир, но Бог не дает мне исходники...
Наверх
IP записан
 
logarifm
Junior Member
**
Отсутствует



Сообщений: 92
Местоположение: Украина
Зарегистрирован: 29. Марта 2007
Пол: Мужской
Re: Как выбрать минимальное значение
Ответ #7 - 18. Декабря 2007 :: 08:13
Печать  
Все разобрался . СПС  Подмигивание
  

я переписал бы мир, но Бог не дает мне исходники...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать