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

Preguntas similare

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


Respuesta Responder a este mensaje
#2 Liliana Sorrentino
05/07/2004 - 16:01 | Informe spam
Hola Marcelo,
Además de la recomendación de Maxi, y solo para que no escribas tanto, este
CONVERT te deja la fecha con el formato que necesitás en tu informe.
SELECT CONVERT(CHAR(10), GETDATE(), 1)
Saludos... Liliana.

"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


Respuesta Responder a este mensaje
#3 Marcelo E Bruski
06/07/2004 - 16:58 | Informe spam
Liliana y Maxi.

No me devolvia filas porque no eran semejantes los formatos de fecha.

Con los formateos que me indicaron resolvi el problema.

Muchas gracias.
"Liliana Sorrentino" escribió en el mensaje
news:
Hola Marcelo,
Además de la recomendación de Maxi, y solo para que no escribas tanto,


este
CONVERT te deja la fecha con el formato que necesitás en tu informe.
SELECT CONVERT(CHAR(10), GETDATE(), 1)
Saludos... Liliana.

"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
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida