Agregar columnas al resultado de un query con datos de otras tablas

04/07/2004 - 23:02 por Marcelo E Bruski | Informe spam
Hola gente del Foro

Tengo las siguientes tablas con los siguientes datos

Temp_estado
T_ESTADO T_FECHA_ALTA
EXCELENTE 02/21/04
BUENO 11/07/03
EXCELENTE 02/21/04
EXCELENTE 07/04/04
A REPARAR 07/04/04
REGULAR 07/04/04

temp_nro
NRO FECHA
528 07/04/04
1024 06/04/03
258 12/12/68
258 07/04/04
466 05/08/92
391 07/04/04
655 07/04/04

y este query con la tabla T_INMUEBLES

SELECT '0'+ convert(varchar(2),DATEPART(mm,
T_Inmuebles.A_Fecha_ALTA)) + '/' + '0'+
+ convert(varchar(2),DATEPART(dd, T_Inmuebles.A_Fecha_ALTA))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_Fecha_ALTA)),3,2)AS
FECHA_DE_ALTA,
convert(varchar(2),DATEPART(mm, T_Inmuebles.A_FECHA_ULTIMA_MODIFICACION)) +
'/' +
+ convert(varchar(2),DATEPART(dd, T_Inmuebles.A_FECHA_ULTIMA_MODIFICACION))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_FECHA_ULTIMA_MODIFI
CACION)),3,2) AS FECHA_MODIF,
A_ANTIGUEDAD, A_SUPERFICIE_CUBIERTA, A_SUPERFICIE_DESCUBIERTA
FROM T_INMUEBLES INNER JOIN T_EQUIVALENCIAS_INMUEBLES_ARGENPROP ON
F_COD_INMUEBLE = P_COD_INMUEBLE --INNER JOIN TEMP_NRO ON FECHA A_FECHA_ALTA
WHERE
convert(varchar(2),DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)) + '/' +
+ convert(varchar(2),DATEPART(dd, T_Inmuebles.A_Fecha_ALTA))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_Fecha_ALTA)),3,2)
CONVERT(VARCHAR(2),(DATEPART(MM,GETDATE()))) + '/' +
CONVERT(VARCHAR(2), DATEPART(DD,GETDATE()))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,GETDATE())),3,2)

el cual me da el siguiente resultado:

FECHA_DE_ALTA FECHA_MODIF A_ANTIGUEDAD A_SUPERFICIE_CUBIERTA
A_SUPERFICIE_DESCUBIERTA
07/04/04 06/21/04 25
200
0
07/04/04 06/27/04 10
250
0
07/04/04 06/27/04 10
500
0
07/04/04 06/27/04 10
400
0
07/04/04 07/04/04 10
300
0


Como puedo hacer para que en las columnas aparezcan los valores NRO Y ESTADO
ademas de lo que me muestra el ultimo query PARA CUANDO LA FECHA SEA IGUAL A
07/04/04.
Si hago un inner join me devuelve 0 filas.

Gracias por existir
 

Leer las respuestas

#1 Maximiliano D. A.
04/07/2004 - 23:16 | Informe spam
Hola, si vas a unir por fechas el problema puede ser el formato ya que las
fechas guardan tambien las horas y los minutos :(

lo que deberias hacer es en el join un convert para que se unan solo por el
dato fecha y no tome en consideracion el resto!!!

Revisa el comando convert y veras las disitntas variantes del mismo, fijate
de usar en el join un formato X

Ej:

Select * from t1 inner join t2 on
convert(char(10),t1.fecha,112) = convert(char(10),t2.fecha,112)

Suerte

"Marcelo E Bruski" escribió en el mensaje
news:
Hola gente del Foro

Tengo las siguientes tablas con los siguientes datos

Temp_estado
T_ESTADO T_FECHA_ALTA
EXCELENTE 02/21/04
BUENO 11/07/03
EXCELENTE 02/21/04
EXCELENTE 07/04/04
A REPARAR 07/04/04
REGULAR 07/04/04

temp_nro
NRO FECHA
528 07/04/04
1024 06/04/03
258 12/12/68
258 07/04/04
466 05/08/92
391 07/04/04
655 07/04/04

y este query con la tabla T_INMUEBLES

SELECT '0'+ convert(varchar(2),DATEPART(mm,
T_Inmuebles.A_Fecha_ALTA)) + '/' + '0'+
+ convert(varchar(2),DATEPART(dd, T_Inmuebles.A_Fecha_ALTA))
+ '/' +



SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_Fecha_ALTA)),3,2)AS
FECHA_DE_ALTA,
convert(varchar(2),DATEPART(mm, T_Inmuebles.A_FECHA_ULTIMA_MODIFICACION))


+
'/' +
+ convert(varchar(2),DATEPART(dd,


T_Inmuebles.A_FECHA_ULTIMA_MODIFICACION))
+ '/' +



SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_FECHA_ULTIMA_MODIFI
CACION)),3,2) AS FECHA_MODIF,
A_ANTIGUEDAD, A_SUPERFICIE_CUBIERTA, A_SUPERFICIE_DESCUBIERTA
FROM T_INMUEBLES INNER JOIN T_EQUIVALENCIAS_INMUEBLES_ARGENPROP ON
F_COD_INMUEBLE = P_COD_INMUEBLE --INNER JOIN TEMP_NRO ON FECHA > A_FECHA_ALTA
WHERE
convert(varchar(2),DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)) + '/' +
+ convert(varchar(2),DATEPART(dd, T_Inmuebles.A_Fecha_ALTA))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,T_Inmuebles.A_Fecha_ALTA)),3,2)
> CONVERT(VARCHAR(2),(DATEPART(MM,GETDATE()))) + '/' +
CONVERT(VARCHAR(2), DATEPART(DD,GETDATE()))
+ '/' +
SUBSTRING(CONVERT(VARCHAR(4),DATEPART(YYYY,GETDATE())),3,2)

el cual me da el siguiente resultado:

FECHA_DE_ALTA FECHA_MODIF A_ANTIGUEDAD A_SUPERFICIE_CUBIERTA
A_SUPERFICIE_DESCUBIERTA
07/04/04 06/21/04 25
200
0
07/04/04 06/27/04 10
250
0
07/04/04 06/27/04 10
500
0
07/04/04 06/27/04 10
400
0
07/04/04 07/04/04 10
300
0


Como puedo hacer para que en las columnas aparezcan los valores NRO Y


ESTADO
ademas de lo que me muestra el ultimo query PARA CUANDO LA FECHA SEA IGUAL


A
07/04/04.
Si hago un inner join me devuelve 0 filas.

Gracias por existir


Preguntas similares