Duda con Isnull en SUM

04/11/2007 - 18:06 por Alexis | Informe spam
Solicito su ayuda para esto:

Tengo dos tablas
a) registros de compras
compras (numcompra, valor, fecha)

b)registros de pagos de esas compras
pagos (numcompra, numpago, valor)

Es una relacion opcional de 1 a N por Numcompra y quiero obtener los
balances de cada compra:

Numcompra, Comprado, Pagado

Tengo el siguiente select:

select numcompra, comprado=compras.valor, pagado=sum(pagos.valor)
from compras
left join pagos on compras.numcompra=pagos.numcompra
group by numcompra,compras.valor

Dado que es un Left Join, la pregunta es como debo usar ISNULL para que la
columna "Pagado" me de Cero cuando la compra no tenga ningun pago:

asi: ISNULL(sum(pagos.valor),0)
o asi: sum( ISNULL(pagos.valor,0) )
o asi: ISNULL(sum( ISNULL(pagos.valor,0) ), 0)
?


Gracias

Preguntas similare

Leer las respuestas

#26 Carlos M. Calvelo
11/11/2007 - 00:57 | Informe spam
Hola otra vez Jorge,

Vaya culebrón :)
Reacciono otra vez porque pienso que seguimos sin
entendernos.

On 11 nov, 00:08, jeastman wrote:
Que tal Carlos.

Ok, comprendo y tienes razón, pensé que lo había dicho antes.

Y de hecho mi discusión no fue en tu punto sino en otros, incluso hice
la prueba de unos ejemplos que pasaste por ahi y efectivamente da los
mismos resultados, algo que no sabía y con lo cual tú aclaraste mi error
desde el inicio.

Luego, lo que yo hice fue hacer referencia a otras situaciones donde si
es necesario el sum( isnull () ) sobre isnull( sum() ), pero en ningún
caso para objetar lo que mensionaste.

Creo que no fui claro cuando dije que tenías la razón en su debido
momento y por eso estámos discutiendo en dos idiomas diferente, jajajaja.



Me explico otra vez.
Yo no quiero que me des la razón. Yo no quiero sacarte a ti de
tu 'error', como dices en el otro post.
Yo propongo con mi argumentación que sum(isnull()) se puede
evitar siempre y lo que quiero es ver un ejemplo o una
argumentación donde se vea claro que si hay casos donde no
se puede prescindir del sum(isnull() ).

Eso es todo. (pero ya me estoy repitiendo).


Tranquilo viejo, efectivamente es cómo tu dices, y más cuando dices que
si algo se puede evitar, entonces debemos hacerlo.





Yo... tranquilísimo. :-)


Saludos hermano.




Saludos para ti también,
Carlos
Respuesta Responder a este mensaje
#27 jeastman
11/11/2007 - 03:30 | Informe spam
Que tal Carlos.

No trato de darte la razón por solo hacerlo, es que de verdad en uno de
los ejemplos me diste a entender algo que yo no sabía como es el caso de
que el sum ignora los valores null cuando se hace algo así

select sum( monto ) from tabla

De verdad lo ignoraba.

Ahora, el tema me parece muy interesante y de verdad me gustaría
continuar con él, te hago una propuesta.

Dame uno o dos días y prepara un par de ejemplos donde creo que es mejor
el sum( isnull( ) ) que el sum( isnull() ), luego ahi devatimos un poco
en el asunto, si estoy equivocado de seguro que estaré bien orientado en
algo y es que aprenderé de los aportes que tú hagas.

Si te parece con mucho gusto retomamos el tema desde el principio.

Un saludos hermano.



Carlos M. Calvelo escribió:
Hola otra vez Jorge,

Vaya culebrón :)
Reacciono otra vez porque pienso que seguimos sin
entendernos.

On 11 nov, 00:08, jeastman wrote:
Que tal Carlos.

Ok, comprendo y tienes razón, pensé que lo había dicho antes.

Y de hecho mi discusión no fue en tu punto sino en otros, incluso hice
la prueba de unos ejemplos que pasaste por ahi y efectivamente da los
mismos resultados, algo que no sabía y con lo cual tú aclaraste mi error
desde el inicio.

Luego, lo que yo hice fue hacer referencia a otras situaciones donde si
es necesario el sum( isnull () ) sobre isnull( sum() ), pero en ningún
caso para objetar lo que mensionaste.

Creo que no fui claro cuando dije que tenías la razón en su debido
momento y por eso estámos discutiendo en dos idiomas diferente, jajajaja.



Me explico otra vez.
Yo no quiero que me des la razón. Yo no quiero sacarte a ti de
tu 'error', como dices en el otro post.
Yo propongo con mi argumentación que sum(isnull()) se puede
evitar siempre y lo que quiero es ver un ejemplo o una
argumentación donde se vea claro que si hay casos donde no
se puede prescindir del sum(isnull() ).

Eso es todo. (pero ya me estoy repitiendo).

Tranquilo viejo, efectivamente es cómo tu dices, y más cuando dices que
si algo se puede evitar, entonces debemos hacerlo.





Yo... tranquilísimo. :-)


Saludos hermano.




Saludos para ti también,
Carlos


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