SQL - Sumar en Sql

 
Vista:
sin imagen de perfil

Sumar en Sql

Publicado por Daniel (6 intervenciones) el 20/09/2017 19:30:39
hola buenas tardes a todos... estoy en un problema no logro hace que mi consulta funcione...
se trata de crear un reporte de venta segun el ID del producto, segun ID de factura que que se le asigna a un Usuario. para eso tengo 4 tablas 1 asignacion, 2 factura, 3 detalle, 4 producto

el resultado que debe arrojar es
id producto | cantidad de producto | precio total de producto | nombre del producto | asignacion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SELECT
(SELECT SUM(factura.total_fac)
FROM factura
WHERE  factura.estado='A'
AND factura.id_fac
BETWEEN 59 AND 63) AS 'total',
 
(SELECT SUM(detalle_factura.cant_prod)
FROM detalle_factura, factura
WHERE detalle_factura.id_fac=factura.id_fac) AS 'sumacantidad',
 
 
productos.id_prod,productos.nombre_prod,detalle_factura.punitario_prod,
 
 
SUM(detalle_factura.ptotal_prod) AS 'sumaprecio',
factura.fecha_fac AS fecha,
personal.apellido_per AS 'apellido',
personal.nombre_per AS 'nombre',
personal.cedula_per AS 'cedula'
 
FROM factura,detalle_factura,productos, personal, asignfac
WHERE factura.id_fac
BETWEEN 59 AND 63
AND factura.id_fac=detalle_factura.id_fac
AND factura.id_fac=asignfac.id_fac
AND `asignfac`.`id_cajero`='1104592157'
AND detalle_factura.id_prod=productos.id_prod
AND factura.estado='A'
GROUP BY   detalle_factura.id_prod


el resultado; suma mal el total la cantidad y 'sumaprecio' que seria el precio total
espero me puedan ayudar
graciass..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Sumar en Sql

Publicado por Isaias (1921 intervenciones) el 20/09/2017 20:19:05
¿En que motor de base de datos trabaja?, ¿Que resultado le da?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Sumar en Sql

Publicado por Daniel (6 intervenciones) el 20/09/2017 20:24:27
lo siento estoy con mysql
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Sumar en Sql

Publicado por Isaias (1921 intervenciones) el 21/09/2017 16:50:41
¿Que resultado te da?, ¿Que resultado esperas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sumar en Sql

Publicado por Solución (1 intervención) el 24/09/2017 03:15:22
bueno se que es un poco raro esto pero acabo de terminar mi consulta....

si alguien sabe como hacerlo de mejor manera espero su comentario es to soluciona la consulta original y crea mi reporte de forma carrocta relacionando tres tablas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SELECT p.nombre_prod as nombre, df.id_prod AS id_prod, SUM( df.cant_prod ) AS cantidad, SUM( df.ptotal_prod ) AS totdetalle,
(
select  sum(df.ptotal_prod)
FROM detalle_factura df
INNER JOIN asignfac af ON df.id_fac = af.id_fac
INNER JOIN factura f ON f.estado =  'A'
AND f.id_fac = df.id_fac
WHERE df.id_fac
BETWEEN 12
AND 18
AND af.id_cajero =  '999999999'
 
) as totprod,
(
SELECT SUM(f.total_fac)
FROM factura f, asignfac af
WHERE  f.estado='A'
AND af.id_fac=f.id_fac
BETWEEN 12 AND 18) AS totalfac,
(
select  sum(f.decuento)
FROM factura f
INNER JOIN asignfac af ON f.id_fac = af.id_fac
WHERE f.id_fac
BETWEEN 12
AND 18
and f.estado='A'
AND af.id_cajero =  '999999999') as descuento,
(
select  sum(f.tot_decuento)
FROM factura f
INNER JOIN asignfac af ON f.id_fac = af.id_fac
WHERE f.id_fac
BETWEEN 12
AND 18
and f.estado='A'
AND af.id_cajero =  '999999999'
)as totdescuento
 
 
FROM detalle_factura df
INNER JOIN asignfac af ON df.id_fac = af.id_fac
INNER JOIN factura f ON f.estado =  'A'
right join productos p on df.id_prod=p.id_prod
AND f.id_fac = df.id_fac
WHERE df.id_fac
BETWEEN 12
AND 18
AND af.id_cajero =  '999999999'
GROUP BY df.id_prod
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar