Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 прошу помочь с условием в запросе  [new]
lopster
Member

Откуда:
Сообщений: 27
Всем добрый день!
Понадобилась помощь знающих людей в следующем вопросе.
Пишется программа на Delphi 7 с использованием данных из MS SQL 2005.
Есть запрос:
SELECT     Car, SUM(Chas) AS Expr1
FROM         Hours
WHERE     (Data = CONVERT(DATETIME, '20121101', 102)) AND (Smena = 1) AND (Vid IN (203, 5, 221)) AND
                          ((SELECT     ShMA
                              FROM         SprAv
                              WHERE     (ID = Hours.Car)) = '22')
GROUP BY Car

Вопрос в следующем:
мне в программе надо посчитать производительность автомобилей,но сложность в том, что у них норма работы 10,6 часов, то есть из 12 часовой смены, мне нужно отнимать при нормальных условиях 1,4 часа, при работе больше часа на линии - отнять единицу, и при работе меньше часа - отнять 0,4.
можно ли в запросе вытащить число, отняв от него прям в запросе коэффициент по условию... например вытащить кол-во часов за смену белаза, отняв от них 1,4 если сумма >8, отнять 1 если более 1 часа... и 0,4 если <=1 час???
в delphi это сделать можно циклом, но время работы такого цикла будет очень долгим, если потребуется, допустим вывести данные по производительности машин за месяц.

Буду признателен за помощь.
7 ноя 12, 11:40    [13431576]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
super-code
Member

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

SELECT Car, SUM(
WHEN CASE Chas < X THEN Chas-Y ELSE.... END
) AS Expr1

Читать про WHEN CASE
7 ноя 12, 11:45    [13431613]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
lopster,

Засорять мозг этой вашей бредовой логикой совсем лень, оформите топик как рекомендуется, глядишь станет более понятно чего вам надо.
7 ноя 12, 11:49    [13431647]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
super-code
lopster,

+ неправильный синтаксис
SELECT Car, SUM(
WHEN CASE Chas < X THEN Chas-Y ELSE.... END
) AS Expr1

Читать про WHEN CASE

Читать надо про Case
7 ноя 12, 11:53    [13431694]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
super-code
Member

Откуда:
Сообщений: 244
denis2710, да там вообще нет решения, просто ключевые слова, по которым можно гуглить. Автору должно быть достаточно...
7 ноя 12, 12:01    [13431775]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
super-code
denis2710, да там вообще нет решения, просто ключевые слова, по которым можно гуглить. Автору должно быть достаточно...

А почему решение этой "чудо" задачи должно быть в BOL?
Если автор хочет сам разобраться ему это надеюсь поможет.
7 ноя 12, 12:04    [13431825]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
lopster,

для CONVERT(DATETIME, '20121101', 102) третий параметр можно не писать. Как и весь CONVERT...
7 ноя 12, 12:40    [13432175]     Ответить | Цитировать Сообщить модератору
 Re: прошу помочь с условием в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
lopster,

для CONVERT(DATETIME, '20121101', 102) третий параметр можно не писать. Как и весь CONVERT...
К тому же '20121101' - это 112-й стиль, а не 102-й
7 ноя 12, 12:41    [13432185]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить