Ver Mensaje Individual
  #14 (permalink)  
Antiguo 20/09/2011, 10:26
LOD_Fredy
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: mostrar las dos ciudades (dir empresa y fiscal) de una empresa

Hola a todos, reabro tema pues me surgio un detalle con otra consulta donde intente utilizar lo que aqui me dijeron, el problema es este:

Tengo una tabla de salida de articulos y una con el detalle de la salida (los articulos que salieron), tengo otra tabla de retornos de articulos (que hace referencia a la salida y el detalle de salida y al articulo) donde puede haber varios retornos para la misma salida (obvio sin pasarse del numero de articulos que salieron), y todas estas salidas pertenecen a x centro de costos, entonces, tengo la siguiente consulta (trae mas cosas pues es la completa).

Código MySQL:
Ver original
  1. SELECT CC.cc_concepto AS 'Centro de Costos',SA.sa_id AS Salida,UN.un_nombre AS Unidad,AR.ar_nombre AS Artículo,
  2. AR.ar_descripcion AS Descripción,TA.ta_concepto AS Tipo,DS.ds_cant AS 'Cant. Prestada', rt.rt_cant AS 'Cant. Devuelta',
  3. SA.`sa_fecha` AS Fecha
  4. articulos AS AR INNER JOIN detalle_salidas AS DS ON Ar.ar_id=DS.ar_id
  5. INNER JOIN tipo_articulo AS TA ON Ta.ta_id=Ar.ta_id
  6. INNER JOIN unidades AS UN ON Un.un_id=Ar.un_idsalida
  7. LEFT JOIN retornos AS RT ON AR.ar_id=RT.ar_id AND DS.ds_id=Rt.ds_id
  8. LEFT JOIN salidas AS SA ON SA.sa_id=RT.sa_id OR SA.sa_id=DS.sa_id  INNER JOIN centro_costos AS CC ON CC.cc_id=SA.cc_id LEFT JOIN usuarios AS US ON Sa.us_id=Us.us_id WHERE US.us_nombre='fredy' AND AR.ar_retornable=1 AND SA.sa_fecha BETWEEN '2011-01-01' AND '2011-11-01' ORDER BY AR.ar_nombre

en este caso me traigo los articulos que han salido y las cantidades que han sido regresadas correspondientes a x usuario en x fecha, cabe mencionar, que puede haber varias salidas de un mismo articulo para un mismo centro de costos por lo que necesito sumar esas cantidades asi como sumar las cantidades regresadas pues para un mismo detalle de salida puede haber varios retornos y aqui es donde esta el problema pues, por ejemplo, tengo la salida 1 y su detalle salida 1 que trae el articulo 1 del que pidieron 50 piezas, entonces hacen un retorno de 10, luego uno de 20, luego otro de 20 para regresar asi las 50 piezas. Esto hace que tenga 3 retornos para un mismo detalle de salida por lo que con la consulta mostrada me traeria 3 registros con cantidad prestada 10 y cantidad regresada 10,20,20, si hago un sum de la cantidad que ha salido del articulo me dice que 150 ya que suma los 3 registros que se crean por los 3 retornos, entonces esa cantidad esta mal.

Segun yo, necesito hacer que me salgan como null los registros de detalles de salidas que "no existen, ya que solo hay un detalle salida y asi al hacer el sum me muestre la cantidad correcta, es por eso que puse la consulta asi, sin sums ni groups by.

Ojala puedan ayudarme, de nuevo, es lo unico que me falta para terminar ese y otro reporte que es el mismo,nada mas cambio lo del where.

si tienen dudas o necesitan algo mas me dicen