Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/01/2016, 16:56
xerifandtomas
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Pregunta 2 campos calculados, misma tabla.

Buenas a todos.

Tengo la siguiente consulta (seguramente una aberracion para algunos) que me trae los datos de de ventas en un mes y año indicado (ejemplo: enero-2016), el primer select cruza datos de 2 tablas (ventas, control_clases) para el resto de select son todos a la misma tabla (ventas).

Esta consulta recupera la suma de ventas (cobrado) agrupandolos por id_actividad.

En la tabla existe un campo llamado tarjeta (boleano 0/1), la idea es generar 2 campos calculados en funcion de este, suma metalico (tarjeta=0) y suma tarjeta (tarjeta=1), el campo calculado actual suma me es indiferente.

Alguien puede orientarme de como realizar esto. y si es posible hacer una consulta mas simple. SQL no es lo mio la verdad, aun que poco a poco golpe a golpe va entrando.

Un saludo, muchas gracias.

Código SQL:
Ver original
  1. SELECT
  2. ventas.tarjeta,
  3. ventas.concepto,
  4. ventas.actividad,
  5. ventas.id_actividad,
  6. SUM(ventas.cobrado) AS suma
  7. FROM
  8. control_clases,ventas
  9. WHERE
  10. control_clases.ano=2016 AND control_clases.mes=1 AND ventas.id=control_clases.id_ventas
  11. GROUP BY
  12. id_actividad
  13.  
  14. UNION ALL
  15.  
  16. SELECT
  17. tarjeta,
  18. INSERT(concepto,1,50,'Suma BP'),
  19. actividad,
  20. INSERT(id_actividad,1,5,' '),
  21. SUM(cobrado) AS suma
  22. FROM
  23. ventas
  24. WHERE
  25. YEAR(fecha_cobro)=2016 AND MONTH(fecha_cobro)=1 AND actividad='BP'
  26. GROUP BY
  27. id_actividad
  28.  
  29. UNION ALL
  30.  
  31. SELECT
  32. tarjeta,
  33. INSERT(concepto,1,50,'Suma BG'),
  34. actividad,
  35. INSERT(id_actividad,1,5,' '),
  36. SUM(cobrado) AS suma
  37. FROM
  38. ventas
  39. WHERE
  40. YEAR(fecha_cobro)=2016 AND MONTH(fecha_cobro)=1 AND actividad='BG'
  41. GROUP BY
  42. id_actividad
  43.  
  44. ORDER BY actividad,concepto,suma

Esto es lo que tengo ahora
Código text:
Ver original
  1. concepto  |  actividad  |  id_actividad  |  suma
  2. ------------------------------------------------------
  3. concepto1  |  CN         |  2                |  120.00
  4. concepto2  |  CN         |  5                |  75.00
  5. suma BP    |  BG         |  10              |  735.00
  6. suma BG    |  BP         |  18               |  262.50

Y esto es lo que pretendo
Código text:
Ver original
  1. concepto  |  actividad  |  id_actividad  |  suma    | tarjeta  | metalico
  2. ---------------------------------------------------------------------------
  3. concepto1  |  CN         |  2              |  120.00  | 80.00    |  40.00
  4. concepto2  |  CN         |  5              |  75.00   | 65.00    |  10.00
  5. suma BP   |  BG         |  10              |  735.00  | 35.00    |  700.00
  6. suma BG   |  BP         |  18              |  262.50  | 62.00    |  200.00