Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda urgente con un select para listar un inventario

Estas en el tema de Ayuda urgente con un select para listar un inventario en el foro de Bases de Datos General en Foros del Web. Hola, llevo dos días y no lo veo, creo que ya estoy obcecado en ver lo que no hay. Tengo creada una tabla entradas (id,referencia,descripcion,familia,subfamilia,cant ...
  #1 (permalink)  
Antiguo 20/11/2003, 03:47
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 7 meses
Puntos: 0
Ayuda urgente con un select para listar un inventario

Hola, llevo dos días y no lo veo, creo que ya estoy obcecado en ver lo que no hay.

Tengo creada una tabla entradas (id,referencia,descripcion,familia,subfamilia,cant _entrada,cant_salida,fecha y comentarios.

Bueno quiero hacer un listado de inventario por lo que me salga la referencia,descripcion, total entradas,total salidas y stock.

con un select distinct consigo que me salga una vez la ref y descripcion aunque logicamente haya mas veces repetidos entradas y salidas de ese artículo, lo que no consigo o no veo es luego hacer la consulta sum(cant_entrada) y sum(cant_salida) de esa referencia y luego hacer la resta de los dos para saber el stock. me es muy urgente, muuuuuuuuchas gracias, os pongo el código aunque os advierto que no funciona por el tema de los sum.

<?
$connection_id = mysql_connect("localhost", "user", "password");
if($connection_id === false)
echo "Error al conectar con el servidor MySQL.<br>";

mysql_select_db("almacen");

$result = mysql_query("select distinct(referencia, descripcion), sum(entrada) as suma_entrada, sum(salida) as sum_salida from entradas order by referencia ", $connection_id);
if($result === false)
echo "Error al realizar la consulta SQL.<br>";

?>
<html>
<head>
<title>Listado de Entradas / Salidas</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<meta http-equiv="" content="text/html; charset=iso-8859-1">
</head>

<body>
<table border="1">
<tr>
<td>referencia</td>
<td>descripcion</td>
<td>entradas</td>
<td>salidas</td>

</tr>
<?php do { ?>
<tr>
<td><?php echo $registro["referencia"]; ?></td>
<td><?php echo $registro["descripcion"]; ?></td>
<td><?php echo $registro["sum_entrada"]; ?></td>
<td><?php echo $registro["sum_salida"]; ?></td>
<?php } while ($registro = (mysql_fetch_assoc($result))); ?>
</tr>

</table>

<br><br><center><a href="../ALMACEN/almacenlocal.htm">Volver </a></center>
</body>
</html>
<?php
mysql_free_result($result);

?>
  #2 (permalink)  
Antiguo 20/11/2003, 08:34
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Hola:
Me parece que no puedes hacer un distinct por mas de un campo.
Debes reformular lo que quieres obtener en terminos de por ejemplo "suma de entradas". Por ejemplo, y tratando de entender lo que quieres, puedes tener la suma de entradas y salidas clasificadas por referencia, asi:

select referencia,sum(cant_entrada) as suma_entradas, sum(cant_salida) as suma_salidas from entradas group by referencia order by referencia.

Ahora, si el campo descripcion es igual al campo referencia, me refiero a que sea la descripcion (valga la redundancia) de la referencia puedes incluirlo en el select y en el group by.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:02.