<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"><br>
¡¡ Impresionante !! Muchas gracias Ricardo.<br>
<br>
Te debo una. Me ha venido muy muy bien tu explicación.<br>
<br>
Saludos.<br>
<br>
El 05/03/2016 a las 12:28, Ricardo Cárdenes escribió:<br>
</div>
<blockquote
cite="mid:CANmyXNas4EVf-BE9nqRpSSv2gom0WPnqq35npSd1uzGpAoeFtA@mail.gmail.com"
type="cite">
<div dir="ltr">Un JOIN normal hace exactamente eso: un cruce entre
las dos tablas mostrando las filas donde hay coincidencias. Es
lo que se llama "inner join" (una combinación interna). Lo que
tú quieres es que se muestren todas las filas de una de las
tablas que participan en la combinación y que, de la otra,
aparezcan los datos que coinciden. Esto se denomina "outer join"
(combinación externa). Las combinaciones externas las tienes de
dos tipos, por la izquierda y por la derecha, dependiendo de qué
tabla tenga que salir entera. Es decir:
<div><br>
</div>
<div> .... FROM articulos LEFT OUTER JOIN movimientos ...</div>
<div><br>
</div>
<div>Obtendrá una nueva tabla donde aparecerán todas las filas
de "artículos" (la tabla "por la izquierda") y también las
filas de movimientos que correspondan. Para las filas de
artículos sin movimientos, esas columnas aparecerán
(normalmente) como valores nulos, no como 0. Eso te debería
dará valores incorrectos para el sumatorio, porque NULL +
valor numérico debería ser NULL. Una solución es usar, por
ejemplo, la función COALESCE (es del estándar SQL y SQLite la
soporta). Se usaría así:</div>
<div><br>
</div>
<div> func.sum(func.coalesce(movimientos.uEntrada, 0))</div>
<div><br>
</div>
<div>si no recuerdo mal. Lo que hace COALESCE es tomar una serie
de valores y devolver el primero que no sea NULL. De esa
manera, si movimientos.uEntrada es NULL, devolverá 0.</div>
<div><br>
</div>
<div>Saludos,</div>
<div>Ricardo</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-03-04 23:25 GMT-10:00 kausdiv <span
dir="ltr"><<a moz-do-not-send="true"
href="mailto:kausdiv@gmail.com" target="_blank">kausdiv@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>¡ Perfecto !<br>
<br>
Es eso. Pero tengo otro problema:<br>
<br>
Supón que tengo 5 artículos dados de alta, y solo 2
tienen movimientos.<br>
<br>
La consulta actual solo muestra los 2 que tienen
movimientos. <br>
<br>
¿ Como podría hacer que aparezcan los 5, y los que no
tienen movimientos que salgan a 0 las entras y salidas ?<br>
<br>
Saludos.<span class=""><br>
<br>
El 05/03/2016 a las 6:46, Ricardo Cárdenes escribió:<br>
</span></div>
<span class="">
<blockquote type="cite">FAQ:
<a class="moz-txt-link-freetext" href="http://python-es-faq.wikidot.com/">http://python-es-faq.wikidot.com/</a>
</blockquote>
</span></div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>