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

Откуда:
Сообщений: 8
Всем привет! помогите плиз!

Есть таблица:

CREATE TABLE table1
( Credit_No VARCHAR(3),
Birth_Date DATETIME,
Bank_client_code VARCHAR(20)
);

в него надо добавить возраст в годах.

ALTER TABLE table1 ADD
column ageYY INT

и ageYY вычисляется так:
ageYY = datediff(YY, Date, gettime()) - это надо впихнуть каким то образом в alter. КАК?

СПАСИБО!!! :)
5 сен 13, 13:19    [14799286]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Dinar_Diego
и ageYY вычисляется так:
ageYY = datediff(YY, Date, gettime())

Ну вы в курсе особенностей работы функции datediff? Например, если человек родился 31.12.2012, то уже 01.01.2013 эта функция вернёт 1?
SELECT DATEDIFF(YY, '20121231', '20130101')

Вас это устраивает?
5 сен 13, 13:34    [14799439]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Dinar_Diego
Member

Откуда:
Сообщений: 8
Гость333,

О! спасибо за замечание!!!

Хм...как же тогда поступить...

может
ageYY = round(datediff(mm, Date, gettime()) /12,0).

ну допустим, я придумаю, как с этим справить :)

как мне эту функцию в alter запихнуть :(
5 сен 13, 13:45    [14799532]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dinar_Diego
как мне эту функцию в alter запихнуть :(

открыть хелп по команде create table и взять оттуда пример ?
5 сен 13, 13:49    [14799577]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
StarikNavy
Member

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

а ничего, что через год инфа устареет? datediff надо на клиенте вычислять
ну, или вьшку сделайте

create view as select Credit_No, datediff() as ageYY....
5 сен 13, 13:50    [14799581]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Dinar_Diego
Member

Откуда:
Сообщений: 8
Dinar_Diego
Гость333,

О! спасибо за замечание!!!

Хм...как же тогда поступить...

может
ageYY = round(datediff(mm, Date, gettime()) /12,0).

ну допустим, я придумаю, как с этим справить :)

как мне эту функцию в alter запихнуть :(



ageYY = round(datediff(mm, Date, gettime()) /12,0).
это тоже не подходит, так как
select ageYY = round(datediff(mm, '20120102', '20130101') /12,0) выдаст 1, а не 0...
но как тогда? ведь в году может 365 дней, а может быть 366...
5 сен 13, 13:51    [14799586]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Dinar_Diego
Member

Откуда:
Сообщений: 8
StarikNavy
Dinar_Diego,

а ничего, что через год инфа устареет? datediff надо на клиенте вычислять
ну, или вьшку сделайте

create view as select Credit_No, datediff() as ageYY....


StarikNavy спасибо!

Вьюшку я сделал, но от меня хотят именно Alter и все равно, что инфа устаревает....
5 сен 13, 13:52    [14799597]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Dinar_Diego
Member

Откуда:
Сообщений: 8
Glory
Dinar_Diego
как мне эту функцию в alter запихнуть :(

открыть хелп по команде create table и взять оттуда пример ?


Glory, пытался...времени в обрез...
там не до конца разобрался...используется constraints preference...а для них вроде нужен primary и тд...
я не особо шар. никогда таблицы не создавал явно.
5 сен 13, 13:54    [14799613]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dinar_Diego
Glory, пытался...времени в обрез...
там не до конца разобрался...используется constraints preference...а для них вроде нужен primary и тд...
я не особо шар. никогда таблицы не создавал явно.

Вы о чем ?
Есть конкретный пример в хелпе Using an expression for a computed column
У вас нет времени посмотреть на него ?
5 сен 13, 14:01    [14799704]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Dinar_Diego
Вьюшку я сделал, но от меня хотят именно Alter и все равно, что инфа устаревает....
Ну так сделайте для хотельцев в таблице вычисляемый столбец.
5 сен 13, 14:02    [14799710]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Dinar_Diego
Member

Откуда:
Сообщений: 8
Glory
Dinar_Diego
Glory, пытался...времени в обрез...
там не до конца разобрался...используется constraints preference...а для них вроде нужен primary и тд...
я не особо шар. никогда таблицы не создавал явно.

Вы о чем ?
Есть конкретный пример в хелпе Using an expression for a computed column
У вас нет времени посмотреть на него ?



еее)))

разобрался :)

создаем тейбл:
DROP TABLE #table1
CREATE TABLE #table1
( Credit_No VARCHAR(3),
Birth_Date DATETIME,
Bank_client_code VARCHAR(20)
);
заполняем...

добавляем толбец:
ALTER TABLE #table1 ADD Age AS datediff(d,Birth_Date,getdate())
5 сен 13, 14:10    [14799781]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
iap
Member

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

наберите в поиске по форуму слово "возраст".
Наслаждайтесь!
5 сен 13, 14:52    [14800191]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
iap
Member

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

наберите в поиске по форуму слово "возраст".
Наслаждайтесь!
Например: 6737306
5 сен 13, 15:11    [14800293]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Maxx
Member [скрыт]

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

ну взял весь кайф обломал
5 сен 13, 15:13    [14800304]     Ответить | Цитировать Сообщить модератору
 Re: Добавление столбца с функцией от другого столбца в таблицу  [new]
Glory
Member

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

ну взял весь кайф обломал

А то бы очередному 8-летнему мальчику пришла бы повестка в армию
5 сен 13, 15:17    [14800332]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить