Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Добрый день, есть таблица оценок, в запросе считаю среднюю оценку для каждого имени:
select u.name, u.login, isnull(round(avg(cast((polite+completeness+availability+eagerness)as float)/4),2),0) average_score

Теперь хочу посчитать количество средних оценок ниже "3,6", можно ли это задать в условии? Если нет то какие есть альтернативы?
4 май 12, 15:08    [12508614]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
S.T.
можно ли это задать в условии?
см. HAVING
4 май 12, 15:30    [12508805]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
alexeyvg
S.T.
можно ли это задать в условии?
см. HAVING

Спасибо, очень помогли)
4 май 12, 15:45    [12508940]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Еще вопрос, как можно задать условие внутри подсчета?
Т.е. считать только те строки, при которых (polite+completeness+availability+eagerness)as float)/4)<3,6
4 май 12, 15:54    [12509018]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
см. CASE.
4 май 12, 16:00    [12509070]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
invm
см. CASE.

Разобрался, спасибо)
count(case when cast((polite+completeness+availability+eagerness)as float)/4<3.66 then 1 else null end)
4 май 12, 16:09    [12509151]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Еще вопрос, есть расчет:
round(isnull((cast((count_incoming+count_outgoing)as float)/pure_time),0),1) number_of_calls_per_hour
где pure_time иногда равен 0, как в этих случаях выводить ноль место рассчитываемого числа?
4 май 12, 17:05    [12509640]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
qwerty112
Guest
S.T.,

см. nullif

нуу или тем же CASE-ом
4 май 12, 17:09    [12509675]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
qwerty112,

Спасибо)
4 май 12, 17:11    [12509686]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31978
S.T.
Еще вопрос, есть расчет:
round(isnull((cast((count_incoming+count_outgoing)as float)/pure_time),0),1) number_of_calls_per_hour
где pure_time иногда равен 0, как в этих случаях выводить ноль место рассчитываемого числа?

round(isnull((cast((count_incoming+count_outgoing)as float)/nullif(pure_time, 0)),0),1) number_of_calls_per_hour
4 май 12, 17:13    [12509698]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
alexeyvg
round(isnull((cast((count_incoming+count_outgoing)as float)/nullif(pure_time, 0)),0),1) number_of_calls_per_hour

Спасибо,
в итоге сделал так:
case when pure_time <>0 then round(isnull((cast((count_incoming+count_outgoing)as float)/pure_time),0),1) else 0 end number_of_calls_per_hour
4 май 12, 18:49    [12510365]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
И еще один вопрос, есть таблица, в ней поля datetimestart, datetimestop типа datetime и lentime типа float, нужно получить число вычисляемое по формуле datetimestart-datetimestop-lentime.
При выполнении такой формулы получается значения вида: "1899-05-28 22:20:18.563"
Есть ли возможность перевести данные в ячейках datetimestart, datetimestop в секунды?
4 май 12, 18:55    [12510389]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
iljy
Member

Откуда:
Сообщений: 8711
S.T.,

см. DATEDIFF
4 май 12, 19:01    [12510418]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
komrad
Member

Откуда:
Сообщений: 5758
iljy,

;) автору уже почти все общеупотребимые функции подсказали

первоисточник знаний
4 май 12, 20:07    [12510594]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
iljy,

Спасибо, все получилось)
5 май 12, 09:57    [12511771]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Есть ли возможность представить время выраженное в секундах, например 123, в формате 02:03?
11 май 12, 14:16    [12536450]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
dateadd
11 май 12, 15:25    [12537229]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
HandKot
dateadd

Можно немного поподробнее? есть поле lentime типа float, в нем ячейка 318,676666666667 отражает 318 секунд 67... милисекунд, хочу получить 5:18
11 май 12, 17:01    [12538030]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
S.T.
Можно немного поподробнее? есть поле lentime типа float, в нем ячейка 318,676666666667 отражает 318 секунд 67... милисекунд, хочу получить 5:18

Ну так подставьте ваши 318,676666666667 в dateadd
11 май 12, 17:02    [12538044]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Glory
S.T.
Можно немного поподробнее? есть поле lentime типа float, в нем ячейка 318,676666666667 отражает 318 секунд 67... милисекунд, хочу получить 5:18

Ну так подставьте ваши 318,676666666667 в dateadd

Пробовал разные варианты,
dateadd(mm, lentime, lentime) получаю 1927-05-15 16:14:24.000
11 май 12, 17:09    [12538081]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
S.T.
Пробовал разные варианты,
dateadd(mm, lentime, lentime)

А почему mm, если "318,676666666667 отражает 318 секунд 67" ?
И почему lentime 2 раза ?
11 май 12, 17:10    [12538092]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
komrad
Member

Откуда:
Сообщений: 5758
S.T.
Есть ли возможность представить время выраженное в секундах, например 123, в формате 02:03?


возможность есть всегда

например :
declare @i int  -- in seconds
select @i=123 
select right('0'+convert(varchar(10),floor(@i/3600)),10)+':'
+right('0'+convert(varchar(10),floor(@i-floor(@i/3600)*3600)/60),2)+':'
+right('0'+convert(varchar(10),@i-(floor(@i/3600)*3600)-(floor(@i-floor(@i/3600)*3600)/60)*60),2) as [hh:mm:ss]
11 май 12, 17:14    [12538118]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
S.T.
Member

Откуда:
Сообщений: 21
Glory
S.T.
Пробовал разные варианты,
dateadd(mm, lentime, lentime)

А почему mm, если "318,676666666667 отражает 318 секунд 67" ?
И почему lentime 2 раза ?

потому что не знаю как работает, "The dateadd function requires 3 argument(s)." какой третий аргумент?
11 май 12, 17:17    [12538136]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
S.T.
"The dateadd function requires 3 argument(s)." какой третий аргумент?
Третий аргумент - кнопка F1.
11 май 12, 17:19    [12538143]     Ответить | Цитировать Сообщить модератору
 Re: Как для рассчитанного значения задать условие выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
S.T.
потому что не знаю как работает,

Поэтому вместо прибавлять секунды леплю прибавлять месяца ?
11 май 12, 17:20    [12538148]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить