Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
1

вычисляемое поле

14.04.2013, 17:57. Показов 1685. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создал такой запрос:
T-SQL
1
2
3
4
5
6
7
8
9
Select
d.номер_договора,
g.дата_очередного_платежа,
g.количество_сделанных_платежей,
d.сумма/d.срок_кредита AS основной_долг,
d.сумма-(d.сумма/d.срок_кредита)*платежи.номер_платежа AS остаток_основного_долга,
d.сумма*(d.процентная_ставка/d.срок_кредита/100) AS погашение_процента,
(d.сумма/d.срок_кредита)+d.сумма*(d.процентная_ставка/d.срок_кредита/100) AS общий_размер_платежа
from договор d , график g , платежи
но g.дата_очередного_платежа тоже должна вычисляться. Пробовал так но не получается:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Select
d.номер_договора,
g.количество_сделанных_платежей,
 
 (select сумма   from договор
 where дата_договора in 
  (
    select дата_договора,  case when (дата_договора) < getdate() then  DATEADD (month, 1, дата_выдачи)
    end as дата_очередного_платежа
    from договор
  )),
 
d.сумма/d.срок_кредита AS основной_долг,
d.сумма-(d.сумма/d.срок_кредита)*платежи.номер_платежа AS остаток_основного_долга,
d.сумма*(d.процентная_ставка/d.срок_кредита/100) AS погашение_процента,
(d.сумма/d.срок_кредита)+d.сумма*(d.процентная_ставка/d.срок_кредита/100) AS общий_размер_платежа
from договор d , график g , платежи
А так работает:
T-SQL
1
2
3
4
5
6
7
  select *   from договор
 where дата_договора in 
  (
    select дата_договора,  case when (дата_договора) < getdate() then  DATEADD (month, 1, дата_выдачи)
    end as дата_очередного_платежа
    from договор
  )
Как его вставить или изменить чтоб он работал?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2013, 17:57
Ответы с готовыми решениями:

Вычисляемое поле
Добрый вечер! Подскажите, как сделать вычисляемое поле используя поля из другой таблицы(они...

Вычисляемое поле
Добрый вечер, уважаемые программисты! Сегодня столкнулся с непонятной для меня штукой! Есть 2...

Вычисляемое поле
Доброго времени суток 8-) Необходимо перемножить два значения, а после записать получившиеся...

Вычисляемое поле
Такой вопрос, у меня в табличке есть вычисляемое поле. Его значение вычисляется с помощью скалярной...

2
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
15.04.2013, 04:22 2
Цитата Сообщение от иван_пропал Посмотреть сообщение
А так работает:
Вы уверены? Судя из кода, у вас подзапрос возвращает таблицу из двух столбцов, что не допустимо при использование оператора IN.
Цитата Сообщение от иван_пропал Посмотреть сообщение
Пробовал так но не получается:
Ошибку бы хоть написали. Помимо того, про что я написал выше, подзапрос, вставляемый в список выбора, должен возвращать скалярное значение, то есть таблицу из одного столбца и одной строки.
1
36 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 110
15.04.2013, 15:09  [ТС] 3
ошибка на второй запрос:
T-SQL
1
2
Сообщение 116, уровень 16, состояние 1, строка 11
В списке выбора можно указать только одно выражение, если вложенный запрос не предварен EXISTS.
0
15.04.2013, 15:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2013, 15:09
Помогаю со студенческими работами здесь

Вычисляемое поле
Тривиальная задача... переношу базу access 2010 на SQL сервер 2008. В аксе вычисляемое поле по...

Вычисляемое поле в таблице
Добрый день. Прошу помощи, так как я только начинаю изучать SQL Server, возникла не простая (для...

Вычисляемое поле и NULL
Создаю некий запрос типа SELECT *, Column1*100+20 FROM table1 Column1 в некоторых строчках...

Вычисляемое поле по условию
Всем добрый день! Подскажите пожалуйста, как правильно написать запрос к таблице T: &quot;Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru