Fecha y hora actual: Miércoles 19 Feb 2020 17:43
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

subconsulta SQL

Responder al Tema

Índice del Foro > SQL - Lenguaje SQL > subconsulta SQL

Autor Mensaje
alejo



Registrado: 09 Abr 2014
Mensajes: 1

Mensaje Publicado: Miércoles 09 Abr 2014 17:17

Título del mensaje: subconsulta SQL

Responder citando

Hola, estoy tratando de hacer una consulta y me tira un mensaje de error que dice "esta subconsulta puede devolver como máximo un registro", la instrucción SQL es la siguiente:


SELECT asientos.cta
(SELECT Sum([A.debe]-[A.haber]) FROM asientos as A WHERE ((A.fecha)<#2/1/2014#) GROUP BY A.cta) AS sdo_inicial,
Sum(asientos.debe) AS SumaDedebe, Sum(asientos.haber) AS SumaDehaber, Sum([debe]-[haber]+[sdo_inicial]) AS Total,
FROM asientos
WHERE ((asientos.fecha)>=#2/1/2014# And (asientos.fecha)<=#12/31/2014#)
GROUP BY asientos.cta;

copio un ejemplo de la tabla:
fecha asto cta debe haber
03/09/2013 80 423003 232,5 0
03/09/2013 80 111101 0 232,5
03/09/2013 81 422109 5 0
03/09/2013 81 111101 0 5
04/09/2013 82 211101 334,09 0
04/09/2013 82 111101 0 334,09
04/09/2013 83 211101 485 0
04/09/2013 83 111101 0 485
09/09/2013 84 422109 5 0
09/09/2013 84 111101 0 5
09/09/2013 85 422109 5 0
09/09/2013 85 111101 0 5
09/09/2013 86 422109 36 0
09/09/2013 86 111101 0 36
10/09/2013 88 422109 31 0
10/09/2013 88 111101 0 31
12/09/2013 89 211101 66,74 0
12/09/2013 89 111101 0 66,74

lo que quiero obtener es: la cuenta, el saldo inicial (es lo que quiero obtener con la subconsulta, que son los movimientos menores a febrero), debe y haber (movimientos a partir de febrero) y el saldo que es la suma y resta de las anteriores.
no se donde esta el error, si alguno me puede ayudar desde ya muchas gracias.

Saludos.

Alejo

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Pico
Usuario Activo


Registrado: 25 Jun 2013
Mensajes: 628

Mensaje Publicado: Miércoles 09 Abr 2014 23:04

Título del mensaje: subconsulta SQL

Responder citando

Al escribir consultas complejas es fácil armarse un taco y poner al final algo que no tiene sentido, como por ejemplo select * from tabla where fecha > #30/1/2014# and fecha < #1/1/2014# o select * from tabla where id = (1,2,3)

No acabo de ver exactamente dónde está el error, pero va por ahí.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
weirdmix
Moderador Global


Registrado: 08 May 2008
Mensajes: 1385
Ubicación: Mérida - MEXICO

Mensaje Publicado: Jueves 10 Abr 2014 20:16

Título del mensaje: subconsulta SQL

Responder citando

Me un poco parecio interesante tu problema asi que lo reproduci y esta es mi solucion:
Código:
  1. SELECT asto.Cuenta,
  2. CONVERT(VARCHAR(11), asto.fecha, 120) AS fecha,
  3. ISNULL((
  4. SELECT SUM(A.Debe)-SUM(A.haber)
  5. FROM asientos AS A
  6. WHERE ((CONVERT(VARCHAR(11), A.fecha, 120))<'2013-04-01') AND A.Cuenta=asto.Cuenta
  7. ),0) AS sdo_inicial,
  8. SUM(asto.debe) AS SumaDedebe,
  9. SUM(asto.haber) AS SumaDehaber,
  10. SUM(asto.Debe)-SUM(asto.haber)-ISNULL((
  11. SELECT SUM(A.Debe)-SUM(A.haber)
  12. FROM asientos AS A
  13. WHERE ((CONVERT(VARCHAR(11), A.fecha, 120))<'2013-04-01') AND A.Cuenta=asto.Cuenta
  14. ),0) AS Total
  15. FROM asientos asto
  16. WHERE ((CONVERT(VARCHAR(11), asto.fecha, 120))>='2013-04-01' AND (CONVERT(VARCHAR(11), asto.fecha, 120))<='2013-12-31')
  17. GROUP BY asto.Cuenta, asto.fecha


Yo ademas haria una funcion que me regresara el saldo inicial de una cuenta.

No se te olvide usar las etiquetas de --code-- para que sea mas facil leer el codigo que pongas.


saludos
Super Super Super


------------------------------
WeirdMix
Colaborador y Moderador Global
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

AYUDA POR FAVOR :SUBCONSULTA

markho34 SQL - Lenguaje SQL 1 Sábado 27 Dic 2014 06:31 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,