Parametro por Dato o por Nombre de Campo

21/09/2007 - 21:52 por JOMIJIMO | Informe spam
Buenas a todos:

Una vez más pido vuestra ayuda:

Tengo una tabla donde voy guardando los animales que entran una finca
o explotacion ganadera.

Entre otros muchos, los datos implicado en esta cuestion son los
siguientes:

Identificación | Fecha Nacimiento | FechaEntrada | FechaSalida
A001 31.12.2005 31.05.2006 15.01.2007
A002 25.09.2004 12.08.2006 15.01.2007
A003 01.09.2005 15.03.2005 02.02.2007
A004 20.06.2004 31.05.2005 02.02.2007
A006 30.11.2004 20.03.2004 02.02.2007

Tambien tengo una funcion que me calcula la edad en meses, para lo
cual le paso dos parametros:

El primero, la fecha de nacimiento y el segundo la fecha en la que
quiero saber que edad tenia
el animal en cuestion:

EDAD(ANIMALES.FECHA_NACI; @FECHA_CALCULO)

El dato del parametro @FECHA_CALCULO se lanza desde la aplicacion.

Tengo un SP que me da una relacion de animales con la edad que yo le
indique:

SELECT IDENTI, FECHA_NACI, EDAD(FECHA_NACI, @FECHA_CALCULO) AS
EdadAnimal
FROM ANIMALES
WHERE (EDAD(FECHA_NACI, @FECHA_CALCULO) = @EdadPantalla)


Me gustaría saber si hay alguna forma de poder indicar cual es el
campo desde el que tiene que tomar el valor del parametro o si tiene
que tomarlo desde el dato que lanzo desde la aplicacion (VB).

Como decimos por aqui, "hablando en plata" porder decirle al SP :

"Quiero animales con Edad: 7 meses cuando Entraron en la finca" ó
"Quiero animales con Edad: 7 meses cuando Salieron de la finca" ó
"Quiero animales con Edad: 7 meses el día 31.03.2007"

Muchas gracias anticipadas por vuestra ayuda y un saludo a todos.
 

Leer las respuestas

#1 Enrique Catala Bañuls
22/09/2007 - 14:54 | Informe spam
Para hacer lo que pides tendras que definirte una pequeña lógica en tu
procedimiento almacenado en el cual le pases un campo numerico que te indique
por ejemplo con un 1 que lo que quieres "entraron", un 2 "salieron" un 3 , el
dia 31-3-2007...

Aunque lo mejor que puedes hacer es una funcion que te devuelva cada una de
esas cosas: EDAD_ENTRADA(), EDAD_SALIDA(), EDAD_DIA(). Ten en cuenta que
T-SQL no soporta sobrecarga de funciones ni procedimientos almacenados.

Salu2!

Atentamente, Enrique Catala Bañuls


"JOMIJIMO" wrote:

Buenas a todos:

Una vez más pido vuestra ayuda:

Tengo una tabla donde voy guardando los animales que entran una finca
o explotacion ganadera.

Entre otros muchos, los datos implicado en esta cuestion son los
siguientes:

Identificación | Fecha Nacimiento | FechaEntrada | FechaSalida
A001 31.12.2005 31.05.2006 15.01.2007
A002 25.09.2004 12.08.2006 15.01.2007
A003 01.09.2005 15.03.2005 02.02.2007
A004 20.06.2004 31.05.2005 02.02.2007
A006 30.11.2004 20.03.2004 02.02.2007

Tambien tengo una funcion que me calcula la edad en meses, para lo
cual le paso dos parametros:

El primero, la fecha de nacimiento y el segundo la fecha en la que
quiero saber que edad tenia
el animal en cuestion:

EDAD(ANIMALES.FECHA_NACI; @FECHA_CALCULO)

El dato del parametro @FECHA_CALCULO se lanza desde la aplicacion.

Tengo un SP que me da una relacion de animales con la edad que yo le
indique:

SELECT IDENTI, FECHA_NACI, EDAD(FECHA_NACI, @FECHA_CALCULO) AS
EdadAnimal
FROM ANIMALES
WHERE (EDAD(FECHA_NACI, @FECHA_CALCULO) = @EdadPantalla)


Me gustaría saber si hay alguna forma de poder indicar cual es el
campo desde el que tiene que tomar el valor del parametro o si tiene
que tomarlo desde el dato que lanzo desde la aplicacion (VB).

Como decimos por aqui, "hablando en plata" porder decirle al SP :

"Quiero animales con Edad: 7 meses cuando Entraron en la finca" ó
"Quiero animales con Edad: 7 meses cuando Salieron de la finca" ó
"Quiero animales con Edad: 7 meses el día 31.03.2007"

Muchas gracias anticipadas por vuestra ayuda y un saludo a todos.


Preguntas similares