Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
sumar 2 campos de la misma tabla

que hay amigos hace dias hice una consulta aqui pero mejor cambie el diseño, y ahora viene mi duda tengo una tabla en la cual meto codigos de productos a veces hay varios registros con el mismo codigo la difrerencia esta en un campo que se llama documento los cuales unos son "S" y otros "E" lo que quiero haces es que se sumen por decir los codigos as3200 con documento "E" y se resten a los codigos "as3200" con documento "S" no se si me explique quise intentar algo pero como no tengo mucha idea de mysql pues me da cero:


Código Delphi [-]
SELECT nombre, codigo, SUM(cantidad)- SUM(cantidad) AS cantidad FROM entradas  WHERE documento=documento GROUP BY codigo
Responder Con Cita
  #2  
Antiguo 07-09-2012
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
no tengo todo muy claro pero quiza te de una idea :

Código SQL [-]
SELECT nombre, codigo,
( 
  (select sum(cantidad) from entradas where documento = 'E')
  -
  (select sum(cantidad) from entradas where documento = 'S')
) as Resultado
FROM entradas
__________________
all your base are belong to us
Responder Con Cita
  #3  
Antiguo 07-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
si algo asi es lo que quiero pero has de cuenta que si tengo 5 entradas de un codigo y no tengo salidas pues el resultado seria 5 pero me pone null se puede hacer algo para mejorar eso??
Responder Con Cita
  #4  
Antiguo 07-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
look, creo que habría que relacionar las subconsultas con la consulta principal porque si no, te dará la suma de entradas y salidas sin agrupar por código.

// Saludos
Responder Con Cita
  #5  
Antiguo 08-09-2012
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
look, creo que habría que relacionar las subconsultas con la consulta principal porque si no, te dará la suma de entradas y salidas sin agrupar por código.

// Saludos
muy cierto amigo.
__________________
all your base are belong to us
Responder Con Cita
  #6  
Antiguo 08-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
lo hice de esta manera pero solo me da resultados correctos cuando hay cantidad en entradas y salidas si en algun codigo nomas hay de entradas me manda null

Código SQL [-]
SELECT nombre, codigo,(  (SELECT SUM(cantidad) FROM entradas WHERE documento = 'E')- (SELECT SUM(cantidad) FROM entradas WHERE documento = 'S')) AS ResultadoFROM entradas GROUP BY codigo
Responder Con Cita
  #7  
Antiguo 08-09-2012
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Código SQL [-]
SELECT nombre, codigo,
(  
  COALESCE((SELECT SUM(cantidad) FROM entradas WHERE documento = 'E') , 0) 
  - 
  COALESCE((SELECT SUM(cantidad) FROM entradas WHERE documento = 'S') , 0) 
) AS Resultado
FROM entradas GROUP BY codigo
__________________
all your base are belong to us
Responder Con Cita
  #8  
Antiguo 08-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
O Tambien :
Código SQL [-]
SELECT nombre, codigo,
(  
  (SELECT SUM(cantidad) FROM entradas WHERE documento = 'E' and cantidad > 0) 
  - 
 (SELECT SUM(cantidad) FROM entradas WHERE documento = 'S' and cantidad > 0) 
) AS Resultado
FROM entradas GROUP BY codigo
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 08-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por edgar_prospero Ver Mensaje
que hay amigos hace dias hice una consulta aqui pero mejor cambie el diseño, y ahora viene mi duda tengo una tabla en la cual meto codigos de productos a veces hay varios registros con el mismo codigo la difrerencia esta en un campo que se llama documento los cuales unos son "S" y otros "E" lo que quiero haces es que se sumen por decir los codigos as3200 con documento "E" y se resten a los codigos "as3200" con documento "S" no se si me explique quise intentar algo pero como no tengo mucha idea de mysql pues me da cero:


Código Delphi [-]
SELECT nombre, codigo, SUM(cantidad)- SUM(cantidad) AS cantidad FROM entradas  WHERE documento=documento GROUP BY codigo
Creo que podemos simplificar esto, al menos en mysql:

Código SQL [-]
select codigo, sum(if(documento = 'E', cantidad, -cantidad)) as resultado
from entradas
group by codigo

// Saludos
Responder Con Cita
  #10  
Antiguo 10-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
gracias por tu respuesta pero como podria acoplarlo a mi problema mira etsa seria mi base de datos claro hay mas campos pero ponder solo los que necesito que entrene en juego

codigo cantidad documento
a300 5 E
a300 5 E
a300 4 S
zx100 5 E

aqui el resultado que espero es A300= 6 (5 +5-4) y zx100=5

no se si logre explicarme
Responder Con Cita
  #11  
Antiguo 10-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo que te puse es la consulta sql para resolvar tu problema. No sé qué motor uses, quizá haya que adaptarlo.

// Saludos
Responder Con Cita
  #12  
Antiguo 10-09-2012
edgar_prospero edgar_prospero is offline
Miembro
NULL
 
Registrado: mar 2012
Posts: 202
Poder: 13
edgar_prospero Va por buen camino
la base de datos que uso es en mysql y en eso estoy tratando de adaptarlo
Responder Con Cita
  #13  
Antiguo 10-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues la consulta que te puse es para mysql, no deberías tener problemas.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consultar Duplicados en una misma tabla o con otra tabla ingabraham SQL 3 13-03-2010 12:26:13
sumar campos cmm07 Varios 2 23-03-2009 16:21:08
Filtro con 2 campos de la misma tabla janlo Conexión con bases de datos 1 28-06-2007 15:53:09
Como copiar campos en una misma tabla JefeNet Conexión con bases de datos 6 28-06-2006 11:13:01
Update de Campos en la Misma Tabla Jvilomar SQL 1 05-04-2005 17:35:05


La franja horaria es GMT +2. Ahora son las 16:15:40.


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
Copyright 1996-2007 Club Delphi