Ayuda para crear una fórmula en una tabla

21/02/2005 - 21:23 por Omar Flores | Informe spam
Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy
(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que
debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
21/02/2005 - 21:47 | Informe spam
Omar,

En este caso podrias usar un trigger, puede ser INSTEAD OF ó AFTER.

Ejemplo:

use northwind
go

create table t (
colA int not null identity unique,
colB datetime,
colC varchar(25)
)
go

create trigger tr_set_colC_io_ins on t
instead of insert
as
set nocount on

insert into t (colB, colC)
select colB, case when datediff(day, colB, getdate()) = 0 then 'Baja' else
null end
from inserted
go

insert into t (colB) values ('20050221')
insert into t (colB) values ('20050222')
go

select * from t
go

drop trigger tr_set_colC_io_ins
go

create trigger tr_set_colC_ins on t
after insert
as
set nocount on

update
a
set
a.colC = case when datediff(day, a.colB, getdate()) = 0 then 'Baja' else
null end
from
t as a
inner join
inserted as i
on a.colA = i.colA
go

insert into t (colB) values ('20050223')
insert into t (colB) values ('20050221')
go

select * from t
go

drop table t
go


AMB


"Omar Flores" wrote:

Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy
(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que
debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.



Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
21/02/2005 - 22:39 | Informe spam
USE tempdb
GO

CREATE TABLE t (ide int, fecha datetime, status varchar(20))
GO

UPDATE t
SET status = 'Baja'
WHERE fecha > getdate()

CREATE TABLE t2
( ide int,
fecha datetime,
status as CASE WHEN fecha>getdate() THEN 'Baja' ELSE '' END
)

INSERT t2 (ide, fecha) VALUES (1, '2005-01-01')
INSERT t2 (ide, fecha) VALUES (1, '2005-12-31')


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Omar Flores" wrote in message news::
Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy

(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que

debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.
Respuesta Responder a este mensaje
#3 Omar Flores
21/02/2005 - 23:17 | Informe spam
Que tal, hay alguna manera de poner esto "CASE WHEN fecha>getdate() THEN
'Baja' ELSE '' END" desde el Enterprise Manager?

Gracias

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
USE tempdb
GO

CREATE TABLE t (ide int, fecha datetime, status varchar(20))
GO

UPDATE t
SET status = 'Baja'
WHERE fecha > getdate()

CREATE TABLE t2
( ide int,
fecha datetime,
status as CASE WHEN fecha>getdate() THEN 'Baja' ELSE '' END
)

INSERT t2 (ide, fecha) VALUES (1, '2005-01-01')
INSERT t2 (ide, fecha) VALUES (1, '2005-12-31')


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.



"Omar Flores" wrote in message news::
Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy

(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que

debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.



Respuesta Responder a este mensaje
#4 Omar Flores
21/02/2005 - 23:55 | Informe spam
No me funciona el triger, me marca que una columna no admite valores nulos,
lo que pasa es que tengo otra columna de tipo varchar que no acepta valores
nulos y es en ésta donde me marca el error, que le debo de modificar al
trigger.

Gracias.


"Alejandro Mesa" escribió en el
mensaje news:
Omar,

En este caso podrias usar un trigger, puede ser INSTEAD OF ó AFTER.

Ejemplo:

use northwind
go

create table t (
colA int not null identity unique,
colB datetime,
colC varchar(25)
)
go

create trigger tr_set_colC_io_ins on t
instead of insert
as
set nocount on

insert into t (colB, colC)
select colB, case when datediff(day, colB, getdate()) = 0 then 'Baja' else
null end
from inserted
go

insert into t (colB) values ('20050221')
insert into t (colB) values ('20050222')
go

select * from t
go

drop trigger tr_set_colC_io_ins
go

create trigger tr_set_colC_ins on t
after insert
as
set nocount on

update
a
set
a.colC = case when datediff(day, a.colB, getdate()) = 0 then 'Baja' else
null end
from
t as a
inner join
inserted as i
on a.colA = i.colA
go

insert into t (colB) values ('20050223')
insert into t (colB) values ('20050221')
go

select * from t
go

drop table t
go


AMB


"Omar Flores" wrote:

Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy
(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que
debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.



Respuesta Responder a este mensaje
#5 MAXI
21/02/2005 - 23:58 | Informe spam
Hola, con el permiso de mi amigo Gux :-)

Usa para estos casos el Query analizer, pero si vas al EM puedes editar la
tabla y en la parte de las sentencias sql ponerlo ahi :-D

De todas maneras para estas cosas siempre es mas util usar el query
analizer, ademas es mucho mas simple :-)



Maxi
Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:



"Omar Flores" escribió en el mensaje
news:
Que tal, hay alguna manera de poner esto "CASE WHEN fecha>getdate() THEN
'Baja' ELSE '' END" desde el Enterprise Manager?

Gracias

"Gustavo Larriera [MVP]" escribió en el mensaje
news:
USE tempdb
GO

CREATE TABLE t (ide int, fecha datetime, status varchar(20))
GO

UPDATE t
SET status = 'Baja'
WHERE fecha > getdate()

CREATE TABLE t2
( ide int,
fecha datetime,
status as CASE WHEN fecha>getdate() THEN 'Baja' ELSE '' END
)

INSERT t2 (ide, fecha) VALUES (1, '2005-01-01')
INSERT t2 (ide, fecha) VALUES (1, '2005-12-31')


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Omar Flores" wrote in message news::
Hola a todos, tengo una pequeña duda, tengo una tabla con la siguiente
estructura

Table
Id
Entrada
Fecha
Status

necesito comparar si el campo Fecha es mayor que la Fecha del día de hoy

(ToDay), si esto es verdadero Poner en el campo status "Baja"

Mi pregunta es, si esto es posible y si es así cómo sería la fórmula que

debo de aplicar para que me de este resultado.

Muchas gracias por su ayuda.







Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida