Traer siempre el mismo numero de registros

28/05/2004 - 20:45 por Mario Peña | Informe spam
Tengo una consulta que me trae datos de dos tablas:

La tabla CAUSAS:
IDCAUSA CAUSA
1 causa1
2 causa2

Y la tabla CUENTAS:
CUENTA VALOR FECHA IDCAUSA
Cuenta1 Valor1 fecha1 1
cuenta2 valor2 fecha2 2

Estoy colocando un WHERE sobre la columna FECHA y CUENTA de la tabla
CUENTAS, por lo tanto, la consulta me trae los datos de la cuenta y que esta
en el rango de fechas. Lo que necesito hacer es que esa misma consulta me
traiga tantos registros como hay en la tabla CAUSAS (en el ejemplo, 2
registros), y que me traiga NULL donde no hay datos. Por ejemplo, para la
cuenta1, quedaria asi:

CUENTA VALOR FECHA IDCAUSA
cuenta1 valor1 fecha1 1
NULL NULL NULL 2

Preguntas similare

Leer las respuestas

#1 Emilio Boucau
28/05/2004 - 22:13 | Informe spam
Mario,

ese tipo de 'relleno con NULLs' la obtenes como slida normal de un LEFT JOIN
de la tabla CUENTAS contra CAUSAS. Es eso o no te entendi muy bien ?

Lo que me desconcierta un poco de tu ejemplo es que para el IDCAUSA = 2 hay
datos. Asumo que es un error de tipeo ...


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com
Respuesta Responder a este mensaje
#2 Mario Peña
28/05/2004 - 22:59 | Informe spam
No, no es un error de tipeo. Lo que sucede en el ejemplo es que yo quiero
traer, para la cuenta1, un registro para la idcausa1 y otro para la
idcausa2, pero como cuenta1 no tiene datos con idcausa2 no me los trae.
Lo que necesito es algo asi como un LEFT JOIN pero de la tabla CAUSAS contra
CUENTAS, que funciona muy bien sin condiciones, pero yo coloco condiciones
sobre la tabla CUENTAS.
Espero haberme hecho entender.

Muchas gracias Emilio.


"Emilio Boucau" escribió en el mensaje
news:
Mario,

ese tipo de 'relleno con NULLs' la obtenes como slida normal de un LEFT


JOIN
de la tabla CUENTAS contra CAUSAS. Es eso o no te entendi muy bien ?

Lo que me desconcierta un poco de tu ejemplo es que para el IDCAUSA = 2


hay
datos. Asumo que es un error de tipeo ...


Saludos !

Emilio Boucau
Buenos Aires - Argentina
http://www.portalsql.com


Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
29/05/2004 - 00:15 | Informe spam
Hola, no te entiendo algo che!! :(

porque esto queda asi:

CUENTA VALOR FECHA IDCAUSA
cuenta1 valor1 fecha1 1
NULL NULL NULL 2




los null porque son? si idcausa esta tambien en la otra tabla!!! eso es lo
que no entiendo :(

Si puedieras explicarme mejor te intentare dar una manito




Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Mario Peña" escribió en el mensaje
news:
Tengo una consulta que me trae datos de dos tablas:

La tabla CAUSAS:
IDCAUSA CAUSA
1 causa1
2 causa2

Y la tabla CUENTAS:
CUENTA VALOR FECHA IDCAUSA
Cuenta1 Valor1 fecha1 1
cuenta2 valor2 fecha2 2

Estoy colocando un WHERE sobre la columna FECHA y CUENTA de la tabla
CUENTAS, por lo tanto, la consulta me trae los datos de la cuenta y que


esta
en el rango de fechas. Lo que necesito hacer es que esa misma consulta me
traiga tantos registros como hay en la tabla CAUSAS (en el ejemplo, 2
registros), y que me traiga NULL donde no hay datos. Por ejemplo, para la
cuenta1, quedaria asi:

CUENTA VALOR FECHA IDCAUSA
cuenta1 valor1 fecha1 1
NULL NULL NULL 2


Respuesta Responder a este mensaje
#4 Mario Peña
29/05/2004 - 01:20 | Informe spam
IdCausa = 2 esta en la otra tabla, pero no para cuenta1.

Si hago

SELECT CUENTA FROM CUENTAS INNER JOIN CAUSAS
ON CUENTAS.IDCAUSA = CAUSAS.IDCAUSA
WHERE CUENTAS.CUENTA = Cuenta1

me trae un solo registro (el de cuenta1), el meollo del asunto es que
necesito que me traiga 2 registros, porque existen dos causas en la tabla
CAUSAS, sin importar si la cuenta1 tiene o no tiene idcausa2.
Espero haberme hecho entender.

Muchas gracias Maximiliano


"Maximiliano Damian Accotto" escribió en el
mensaje news:%
Hola, no te entiendo algo che!! :(

porque esto queda asi:

CUENTA VALOR FECHA IDCAUSA
> cuenta1 valor1 fecha1 1
> NULL NULL NULL 2


los null porque son? si idcausa esta tambien en la otra tabla!!! eso es lo
que no entiendo :(

Si puedieras explicarme mejor te intentare dar una manito




Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Mario Peña" escribió en el mensaje
news:
> Tengo una consulta que me trae datos de dos tablas:
>
> La tabla CAUSAS:
> IDCAUSA CAUSA
> 1 causa1
> 2 causa2
>
> Y la tabla CUENTAS:
> CUENTA VALOR FECHA IDCAUSA
> Cuenta1 Valor1 fecha1 1
> cuenta2 valor2 fecha2 2
>
> Estoy colocando un WHERE sobre la columna FECHA y CUENTA de la tabla
> CUENTAS, por lo tanto, la consulta me trae los datos de la cuenta y que
esta
> en el rango de fechas. Lo que necesito hacer es que esa misma consulta


me
> traiga tantos registros como hay en la tabla CAUSAS (en el ejemplo, 2
> registros), y que me traiga NULL donde no hay datos. Por ejemplo, para


la
> cuenta1, quedaria asi:
>
> CUENTA VALOR FECHA IDCAUSA
> cuenta1 valor1 fecha1 1
> NULL NULL NULL 2
>
>


Respuesta Responder a este mensaje
#5 Maximiliano Damian Accotto
29/05/2004 - 01:30 | Informe spam
Hola, y porque no usas LEFT JOIN?


Salu2

Maximiliano Damian Accotto
Gerente de IT
Fundicion San Cayetano S.A.
Buenos Aires Argentina
-
maxi_accotto[arroba]speedy[.]com[.].ar
MSN:



"Mario Peña" escribió en el mensaje
news:
IdCausa = 2 esta en la otra tabla, pero no para cuenta1.

Si hago

SELECT CUENTA FROM CUENTAS INNER JOIN CAUSAS
ON CUENTAS.IDCAUSA = CAUSAS.IDCAUSA
WHERE CUENTAS.CUENTA = Cuenta1

me trae un solo registro (el de cuenta1), el meollo del asunto es que
necesito que me traiga 2 registros, porque existen dos causas en la tabla
CAUSAS, sin importar si la cuenta1 tiene o no tiene idcausa2.
Espero haberme hecho entender.

Muchas gracias Maximiliano


"Maximiliano Damian Accotto" escribió en


el
mensaje news:%
> Hola, no te entiendo algo che!! :(
>
> porque esto queda asi:
>
> CUENTA VALOR FECHA IDCAUSA
> > cuenta1 valor1 fecha1 1
> > NULL NULL NULL 2
>
>
> los null porque son? si idcausa esta tambien en la otra tabla!!! eso es


lo
> que no entiendo :(
>
> Si puedieras explicarme mejor te intentare dar una manito
>
>
>
>
> Salu2
>
> Maximiliano Damian Accotto
> Gerente de IT
> Fundicion San Cayetano S.A.
> Buenos Aires Argentina
> -
> maxi_accotto[arroba]speedy[.]com[.].ar
> MSN:
>
>
>
> "Mario Peña" escribió en el mensaje
> news:
> > Tengo una consulta que me trae datos de dos tablas:
> >
> > La tabla CAUSAS:
> > IDCAUSA CAUSA
> > 1 causa1
> > 2 causa2
> >
> > Y la tabla CUENTAS:
> > CUENTA VALOR FECHA IDCAUSA
> > Cuenta1 Valor1 fecha1 1
> > cuenta2 valor2 fecha2 2
> >
> > Estoy colocando un WHERE sobre la columna FECHA y CUENTA de la tabla
> > CUENTAS, por lo tanto, la consulta me trae los datos de la cuenta y


que
> esta
> > en el rango de fechas. Lo que necesito hacer es que esa misma consulta
me
> > traiga tantos registros como hay en la tabla CAUSAS (en el ejemplo, 2
> > registros), y que me traiga NULL donde no hay datos. Por ejemplo, para
la
> > cuenta1, quedaria asi:
> >
> > CUENTA VALOR FECHA IDCAUSA
> > cuenta1 valor1 fecha1 1
> > NULL NULL NULL 2
> >
> >
>
>


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