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

Откуда:
Сообщений: 5
добрый день.
есть запрос
SELECT kontrag.n_scheta,kontrag.id_kontr,((SELECT SUM(s_postupl.cena*kolvo) FROM s_postupl,postupl WHERE s_postupl.n_dok=postupl.n_post AND postupl.id_kontr
=kontrag.id_kontr)- (SELECT SUM(dok_vip.debit) FROM dok_vip,vipiska_banka
WHERE dok_vip.n_dok=n_vipiski AND dok_vip.schet_kontrag=kontrag.n_scheta 
)) AS pole1 FROM kontrag GROUP BY kontrag.n_scheta,kontrag.id_kontr


в результате этого запроса будут поля : .n_scheta, id_kontr, pole1. в pole1 содержится результат вычисления.

вопрос. как сделать чтобы если число положительное результат записывался в pole1, а если отрицательное то в какое нибудь другое поля "pole2".

спасибо
30 апр 13, 16:37    [14250306]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
d36rk
как сделать чтобы если число положительное результат записывался в pole1

что при это должно "записываться" в pole2 ?

d36rk
а если отрицательное то в какое нибудь другое поля "pole2".

что при это должно "записываться" в pole1 ?
30 апр 13, 16:39    [14250320]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
d36rk
Member

Откуда:
Сообщений: 5
Glory
d36rk
как сделать чтобы если число положительное результат записывался в pole1

что при это должно "записываться" в pole2 ?
в pole2 при этом должен быть 0

d36rk
а если отрицательное то в какое нибудь другое поля "pole2".

что при это должно "записываться" в pole1 ?


в pole1 при этом должен быть 0
30 апр 13, 16:45    [14250371]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Ну тогда CASE ... END вам поможет
30 апр 13, 16:47    [14250391]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
d36rk
Member

Откуда:
Сообщений: 5
Glory
Ну тогда CASE ... END вам поможет


я читал про case только неи понял как им пользоваться. если можете покажите пожалуйста на моём примере
30 апр 13, 16:48    [14250398]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
d36rk
только неи понял как им пользоваться

Взять пример из хелпа и понять

SELECT   ProductNumber, Name, 'Price Range' = 
      CASE 
         WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
         WHEN ListPrice < 50 THEN 'Under $50'
         WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
         WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
         ELSE 'Over $1000'
      END
FROM Production.Product
ORDER BY ProductNumber ;
30 апр 13, 16:49    [14250409]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
d36rk
Member

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

понять пытался, что то получилось так
with Data (value) as(
select ((select  isnull(sum(s_postupl.cena*kolvo),0) from s_postupl,postupl where s_postupl.n_dok=postupl.n_post and postupl.id_kontr
=kontrag.id_kontr)- (select sum(isnull(dok_vip.debit,0)) from dok_vip,vipiska_banka
where dok_vip.n_dok=n_vipiski and dok_vip.schet_kontrag=kontrag.n_scheta 
)) as pole1 from kontrag)
SELECT 
   CASE 
      WHEN (value) <= 0 THEN
   END 
FROM Data ;


но это не правильно. подскажите пожалуйста как сделать!
30 апр 13, 21:05    [14251242]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
d36rk
Member

Откуда:
Сообщений: 5
всё тему можно закрывать. сделал с помощью подстановочного поля
30 апр 13, 22:45    [14251585]     Ответить | Цитировать Сообщить модератору
 Re: записать информацию в поле в зависимости от значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
d36rk
Glory,

но это не правильно. подскажите пожалуйста как сделать!


сравните ваш
   CASE 
      WHEN (value) <= 0 THEN
   END 


с примером из хелпа

'Price Range' = 
      CASE 
         WHEN ListPrice =  0 THEN 'Mfg item - not for resale'
         WHEN ListPrice < 50 THEN 'Under $50'
         WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
         WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
         ELSE 'Over $1000'
      END

найдите 10 отличий
30 апр 13, 23:19    [14251697]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить