Imprimir página | Cerrar ventana

Consulta de selección

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86950
Fecha de impresión: 26/Marzo/2026 a las 19:35


Tema: Consulta de selección
Publicado por: valencianoblaugrana
Asunto: Consulta de selección
Fecha de publicación: 18/Junio/2024 a las 13:38
Buenos días
Me gustaría saber como puedo hacer una consulta de selección en la que existen dos campos (campo1 y campo2) de contenidos numéricos y en el caso de que las cantidades de campo1 y campo2 sean iguales, no aparezcan en los resultados, es decir si [campo1]-[campo2]=0, esos registros, no aparezcan en la consulta

Muchas gracias de antemano

Un saludo



Respuestas:
Publicado por: mounir
Fecha de publicación: 18/Junio/2024 a las 14:17
Hola!

Haz la consulta y en criterios de la resta [campo1]-[campo2] pones > 0, así saldrán los mayores de de cero.

-------------
Un Saludo.


Publicado por: valencianoblaugrana
Fecha de publicación: 18/Junio/2024 a las 14:31
Si hago eso me dice "su consulta no incluye la expresión especificada campo1-campo2>0 como parte de una función de agregado"


Publicado por: xavi
Fecha de publicación: 18/Junio/2024 a las 15:28
Hola,

¿Puedes poner la SQL que estas utilizando actualmente y que muestra todos los valores?

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: emiliove
Fecha de publicación: 18/Junio/2024 a las 15:32
Mounir quiso decir que primero crees un campo nuevo que sea: campo1-campo2 y en criterio pones lo que dice.

Saludos.


Publicado por: valencianoblaugrana
Fecha de publicación: 18/Junio/2024 a las 17:03
Buenas tardes Xavi,

Te pongo el SQL

SELECT asientos.Nif_empresa, asientos.Año, apuntes_definitivo.cuenta, apuntes_definitivo.cuenta_reg, apuntes_definitivo.nom_cuenta, apuntes_definitivo.CM, apuntes_definitivo.Codigo, apuntes_definitivo.documento, Sum(apuntes_definitivo.Debe) AS Debe, Sum(apuntes_definitivo.Haber) AS Haber, [Debe]-[Haber] AS saldo
FROM asientos INNER JOIN apuntes_definitivo ON asientos.Num_asiento = apuntes_definitivo.Num_Asiento
GROUP BY asientos.Nif_empresa, asientos.Año, apuntes_definitivo.cuenta, apuntes_definitivo.cuenta_reg, apuntes_definitivo.nom_cuenta, apuntes_definitivo.CM, apuntes_definitivo.Codigo, apuntes_definitivo.documento
HAVING (((asientos.Nif_empresa)="A25262728") AND (([Debe]-[Haber])>0));

Muchas gracias


Publicado por: mounir
Fecha de publicación: 18/Junio/2024 a las 19:54
Hola!

Creo que el problema está en la agrupación y la clausula HAVING, utiliza mejor WHERE, a ver si funciona así. Mira este articulo

https://learn.microsoft.com/es-es/sql/ssms/visual-db-tools/use-having-and-where-clauses-in-the-same-query-visual-database-tools?view=sql-server-ver16" rel="nofollow - https://learn.microsoft.com/es-es/sql/ssms/visual-db-tools/use-having-and-where-clauses-in-the-same-query-visual-database-tools?view=sql-server-ver16

-------------
Un Saludo.


Publicado por: valencianoblaugrana
Fecha de publicación: 24/Junio/2024 a las 16:57
Buenas tardes,

Al final lo he solucionado creando un recordset sobre la consulta en cuestión y estableciendo como propiedad final que me incluya los registros cuyo [saldo] sea diferente a "0", es decir, cuyas cantidades en [debe] y en [haber] sean diferentes, lo he programado de la siguiente manera:

Saldo es un campo calculado en la consulta [saldo]=[debe]-[haber]

Set Rst = CurrentDb.OpenRecordset("SELECT * FROM Regularizacion WHERE Año=" & año & " AND Nif_empresa='" & Nif_Empresa & "' AND Left(cuenta, 1)BETWEEN  " & cuenta1 & "  AND  " & cuenta2 & " AND saldo <> 0 ORDER BY saldo")

Muchas gracias por vuestras aportaciones
Se puede cerrar el hilo

Un Saludo



Imprimir página | Cerrar ventana