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

Problema con SUM

Estas en el tema de Problema con SUM en el foro de Mysql en Foros del Web. Tengo dos tablas @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE TABLE   `facturacion` . `factura` (   `ide` int ( 10 ) unsigned NOT NULL ...
  #1 (permalink)  
Antiguo 02/11/2011, 15:35
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 10 meses
Puntos: 1
Problema con SUM

Tengo dos tablas

Código MySQL:
Ver original
  1. CREATE TABLE  `facturacion`.`factura` (
  2.   `factura` int(10) unsigned NOT NULL,
  3.   `cliente` int(10) unsigned NOT NULL,
  4.   `fecha` date NOT NULL,
  5.   `status` varchar(45) NOT NULL,
  6.   PRIMARY KEY (`ide`)
  7.  
  8. CREATE TABLE  `facturacion`.`detalle_factura` (
  9.   `factura` int(10) unsigned NOT NULL,
  10.   `cantidad` int(10) unsigned NOT NULL,
  11.   `concepto` varchar(150) NOT NULL,
  12.   `importe` decimal(12,2) NOT NULL,
  13.   PRIMARY KEY (`ide`)

Esta relacionadas por el campo factura de la tabla detalle factura con el campo ide de fatura

Quiero hacer una consulta que me arroje lo siguiente:

FATURA, TOTAL

Donde total es la suma del campo importe de la tabla detalle me podrian ayudar ocn esto

Gracias
  #2 (permalink)  
Antiguo 03/11/2011, 04:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con SUM

Código MySQL:
Ver original
  1. Select f.factura, sum(d.importe) as total from factura f inner join detalle_factura d on f.ide=d.factura group by f.factura;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/11/2011, 12:32
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Problema con SUM

si me funciono muchas gracias
  #4 (permalink)  
Antiguo 03/11/2011, 19:44
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Problema con SUM

cuando no hay detalles no me muestra la factura necesito que si me muestre las facturas sin detalle es decir


factura importe
1 100.00
2 50.00
3 0.00

la factura 3 no tiene detalles
  #5 (permalink)  
Antiguo 03/11/2011, 20:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con SUM

Usando LEFT JOIN en lugar de INNER JOIN:
Código MySQL:
Ver original
  1. SELECT f.factura, sum(d.importe) as total
  2. FROM factura f LEFT JOIN detalle_factura d on f.ide=d.factura
  3. GROUP BY f.factura;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 04/11/2011, 00:38
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Problema con SUM

en los casos que no tenga detalle la factura el valor de la suma del importe es Null se puede hacer que en esos caso regrese 0.00
  #7 (permalink)  
Antiguo 04/11/2011, 00:45
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Problema con SUM

ya solucionado con

if(sum(d.importe) is NULL,0.00,sum(d.importe))
  #8 (permalink)  
Antiguo 04/11/2011, 13:10
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 14 años, 2 meses
Puntos: 91
Respuesta: Problema con SUM

Te recomiendo no hacer ese if allí y mejor validar en la aplicación si el importe es NULL
debido a que allí estás realizando 2 veces la función SUM() una para saber si es NULL y la otra para mostralo en caso de que no sea NULL. o sea en la mayoría de los casos va a hacer la suma 2 veces.
  #9 (permalink)  
Antiguo 07/11/2011, 02:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con SUM

O usa IFNULL(sum(d.importe),0)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: sum, tabla
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 15:26.