SQL - Ayuda consulta sql

   
Vista:

Ayuda consulta sql

Publicado por Jorge (5 intervenciones) el 05/11/2012 17:14:04
Buenos días!

Amigos programadores. Soy novato en sql y tengo un pequeño problema con un script sql
intento separar los egresos e ingresos sumados por cada cuenta, logro la separación pero no la suma el script que utlilizo es el sig.

select distinct accountno as cuenta,cbk.name as banco,
case when trxamt < 0 then sum(trxamt) * -1 end as egreso,
case when trxamt > 0 then sum(trxamt) end as ingreso


from adempiere.c_bankaccount



la tabla original es:

cuenta banco monto
001 BRN 120
001 BRN -450
001 BRN 100
003 Money 1000
003 Money -500
003 Money -500
002 BAC 800


lo deseado es :

Cuenta Banco egreso ingreso
001 BRN 450 220
003 Money 1000 1000
002 BAC 800

Por favor alguien me podria ayudar con esto!! Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Isaias

Ayuda consulta sql

Publicado por Isaias (691 intervenciones) el 05/11/2012 19:04:43
select accountno as cuenta, name as banco,
sum(case when trxamt < 0 then (trxamt) * -1 end) as Egreso,
sum(case when trxamt > 0 then (trxamt) end) as Ingreso
--case when trxamt < 0 then sum(trxamt) * -1 end as egreso,
--case when trxamt > 0 then sum(trxamt) end as ingreso
from c_bankaccount
group by accountno, name

cuenta banco Egreso Ingreso
------ -------------------------------------------------- --------------------- ---------------------
002 BAC NULL 800.00
001 BRN 450.00 220.00
003 Money 1000.00 1000.00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda consulta sql

Publicado por Jorge (5 intervenciones) el 05/11/2012 19:49:23
Hola, Isaias me funciono a la perfección. te a lo agradezco mucho brother.
me has sacado de un apuro.
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

Ayuda consulta sql

Publicado por Isaias (691 intervenciones) el 05/11/2012 23:54:30
De nada compañero, por ahí sale un valor NULL, si quieres evitarlo, utilizar ISNULL

select accountno as cuenta, name as banco,
ISNULL(sum(case when trxamt < 0 then (trxamt) * -1 end),0) as Egreso,
ISNULL(sum(case when trxamt > 0 then (trxamt) end), 0 ) as Ingreso
from c_bankaccount
group by accountno, name
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda consulta sql

Publicado por Jorge (5 intervenciones) el 06/11/2012 15:28:00
Gracias amigo. lo tome en cuenta muchas gracias!
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

Ayuda consulta sql

Publicado por armando (1 intervención) el 09/11/2012 15:00:47
hola buenos dias tengo esta consulta

tengo que mostrar los 2 primeros clientes con nombre y cedula cuyda ciudad sea BOGOTA, en la consulta debe arrojar el nombre y no el codigo de la ciudad, el resultado tiene que salir ordenado descendente por cedula y el encabezado de las columnas tienen que ser:

para campo nombre: razon social

para campo cedula: identificacion

las tablas son

1) Clientes------->cedula

nombres

apellidos

telefono

idciudad

2)Ciudades------->Idciudad

nombreciud



realize la siguiente consulta:



SELECT TOP 2 Clientes.Cedula as Identificacion,Clientes.Nombres as RazonSocial,Clientes.Apellidos,Clientes.Telefono FROM Clientes, Ciudades

from Clientes,Ciudades

WHERE Ciudades.NombreCiud='BOGOTA' and Clientes.idCiudad=Ciudades.idCiudad

ORDER BY Clientes.Cedula DESC





y me arrojo este error:

Error: Error de sintaxis en la cláusula FROM. (State:37000, Native Code: FFFFF24E)



que le falta???
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

Ayuda consulta sql

Publicado por Jorge (5 intervenciones) el 10/11/2012 06:21:17
Hola Armando.

Tu consulta presenta ese error, porque esta utilizando la clásula From dos veces lo que no es permitido si antes no realizas un subselect.

Prueba con este script

select TOP 2 cl.nombres as RazonSocial, cl.Cedula as Identificacion, ct.nombreciud as ciudad

From Clientes cl

inner join Ciudades ct on cl.idciudad = ct.idciudad
where ct.nombreciud= 'BOGOTA'
Order by cl.cedula DESC
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