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

Resta de dos registros en SQL

Estas en el tema de Resta de dos registros en SQL en el foro de Bases de Datos General en Foros del Web. Yo estoy haciendo el siguiente select: Código: SELECT SAP.shkzg, Sum(SAP.wrbtr) - previews as Monto FROM SAP..SAPR3.BSID SAP WHERE SAP.mandt = '400' AND SAP.bukrs = 'RICA' ...
  #1 (permalink)  
Antiguo 27/08/2004, 06:22
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Pregunta Resta de dos registros en SQL

Yo estoy haciendo el siguiente select:

Código:
SELECT SAP.shkzg, Sum(SAP.wrbtr) - previews as Monto 
FROM SAP..SAPR3.BSID SAP 
WHERE SAP.mandt = '400'        AND
      SAP.bukrs = 'RICA'       AND
      SAP.kunnr = '0001298492'
GROUP By SAP.shkzg
Y me arroja como resultado:
Código:
H	12298.60
S	13423.13
La S son las facturas y la H es lo que ha pagado.

Como yo hago la consulta para que me traiga la resta de esos dos registros y solo me devuelva un solo registro?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 27/08/2004, 06:31
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Prueba con esto:
Código:
SELECT SAP.shkzg, Sum(SAP.wrbtr) - SAP.previews as Monto, 
           SAP2.shkzg, Sum(SAP2.wrbtr) - SAP2.previews as Monto2 
FROM SAP.SAPR3.BSID SAP, SAP.SAPR3.BSID SAP2
WHERE SAP.mandt = '400'        AND
      SAP.bukrs = 'RICA'       AND
      SAP.kunnr = '0001298492'
      SAP.shkzg = "H" AND

      SAP2.mandt = '400'        AND
      SAP2.bukrs = 'RICA'       AND
      SAP2.kunnr = '0001298492' AND
      SAP2.shkzg = "S"
GROUP By SAP.shkzg, SAP2.shkzg
si te fijas es la misma tabla dos veces con dos alias distintos. Con cada tabla consigues uno de los dos registros y al cruzarlas, obtienes un único registro con los dos datos que te interesan.
Un saludo.

Última edición por Vice; 27/08/2004 a las 06:32
  #3 (permalink)  
Antiguo 27/08/2004, 07:31
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 2 meses
Puntos: 7
Le coloque unos AND q le faltaba y coloqué la S y H entre comillas simple asi:

Código:
SELECT SAP.shkzg, Sum(SAP.wrbtr)   - SAP.previews as Monto, 
       SAP2.shkzg, Sum(SAP2.wrbtr) - SAP2.previews as Monto2 
FROM SAP.SAPR3.BSID SAP, SAP.SAPR3.BSID SAP2
WHERE SAP.mandt = '400'        AND
      SAP.bukrs = 'RICA'       AND
      SAP.kunnr = '0001298492' AND
      SAP.shkzg = 'H'	       AND

      SAP2.mandt = '400'        AND
      SAP2.bukrs = 'RICA'       AND
      SAP2.kunnr = '0001298492' AND
      SAP2.shkzg = 'S'
GROUP By SAP.shkzg, SAP2.shkzg
Pero me da el siguiente error:
Código:
Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'SAP.SAPR3.BSID'.
Server: Msg 208, Level 16, State 1, Line 1
Invalid object name 'SAP.SAPR3.BSID'. 
Me señala la lína: SELECT SAP.shkzg, Sum(SAP.wrbtr) - SAP.previews as Monto,
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
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 16:31.