Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   sumar datos de campo de una tabla y restarle los mismos dependiendo del estado (https://www.clubdelphi.com/foros/showthread.php?t=91576)

dejehever 07-03-2017 22:18:54

sumar datos de campo de una tabla y restarle los mismos dependiendo del estado
 
hola foro tengo una consulta como hacer para realizar esta consulta tengo una tabla que se llama tblpagos y estos son los campos

idPago
pgUsuarioR
pgDestino
pgPunto_A
pgValor_Pagar
pgRegistUser
pgUserPaga
pgEstado

lo que quiero hacer es select idPago, pgUsuarioR, pgDestino, pgPunto_A, sumar (pgValor_Pagar) where pgEstado='E' y restar el valor de la suma de (pgValor_Pagar) mientras el pgEstado='P' posterior mente mostrar el total

ElKurgan 09-03-2017 07:34:04

¿Podrías aclarar un poco que es lo que necesitas?

Yo al menos no he entendido del todo bien lo que quieres hacer... ¿id_pagos puede repetirse? ¿Es clave única? ¿Sumar y restar de los totales, o por algún tipo de agrupación?

Me explico: Para poder hacer funciones de suma lo que se necesita es hacer un group by de algo... ¿Todos los campos que has descrito? ¿Alguno en concreto?

Ya te digo, no está muy claro (o yo estoy torpe a estas horas y no lo veo)

Saludos

dejehever 09-03-2017 13:35:51

hola disculpa por no haberme explicado bn
 
estos son los campos de la tabla tblPagos

idPago (clave primaria id del registro)
pgUsuarioR
pgDestino
pgPunto_A
pgValorTotal
pgValor_Pagar
pgRegistUser
pgUserPaga
pgEstado

lo que quiero es hacer la consulta que me muestre los campos idPago,pgUsuarioR,pgDestino,pgPunto_A y la suma de todos los registros de pgValorTotal mientras el pgEstado='E' y a esta suma restarle la sumar de todos los registros de pgValor_Pagar mientras el pgEstado='Pago'

me debe dar un resultado mas o menos asi
si la suma de pgValorTotal es 200.000 y la suma de pgValor_Pagar es 50000

pgUsuarioR valortotal
1234567 150000

ElKurgan 10-03-2017 08:52:22

Es decir, si no he entendido mal, lo que quieres es TOTALIZAR POR USUARIO... ¿O quieres totalizar por todos los campos que indicas en la línea?

si es el primer caso bastaría con esto:

Código SQL [-]
SELECT Suma.pgUsuarioR, Suma.Total - Resta.Total ValorToal FROM 
  (SELECT pgUsuarioR, SUM(pgValorTotal) Total FROM tblPagos WHERE pgEstado='E' GROUP BY pgUsuarioR) Suma,
  (SELECT pgUsuarioR, SUM(pgValor_Pagar) Total FROM tblPagos WHERE pgEstado = 'Pago' GROUP BY pgUsuarioR) Resta
WHERE Suma.pgUsuarioR = Resta.pgUsuarioR

Si es el segundo caso, tendrías que añadir a ambas SELECT todos los campos que quieras que aparezcan y también a la claúsula GROUP BY.

Espero haber entendido (esta vez) lo que necesitas

Saludos

dejehever 10-03-2017 15:54:18

muchas gracias por responder y darme pronta solucion
 
1 Archivos Adjunto(s)
tengo otra pregunta quiero realizar la siguiente consulta a ver si se puede y que me traiga los resultados así como esta en la imagen adjunta
generar un reporte o como debo hacer para obtener los datos y sumar y restar los totales, te agradezco en lo que me puedas colaborar.

Casimiro Notevi 10-03-2017 16:56:15

Cita:

Empezado por dejehever (Mensaje 514201)
tengo otra pregunta quiero realizar la siguiente consulta a ver si se puede y que me traiga los resultados así como esta en la imagen adjunta
generar un reporte o como debo hacer para obtener los datos y sumar y restar los totales, te agradezco en lo que me puedas colaborar.

http://www.clubdelphi.com/foros/guiaestilo.php
Lee el punto 12.


La franja horaria es GMT +2. Ahora son las 05:18:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi