[ Foro de SQL (y MySQL) ]

FUSIONAR CONSULTAS

12-Aug-2025 01:39
patricico carrasco
1 Respuestas

estimados, me podrian orientar en como fusionar estas consultas:


SELECT * FROM `equipos` WHERE `equipos_secalibra`='si' 
AND `equipos_fechaproxcal`<= '2026-12-12' AND `equipos_estado` IN('1','4');

SELECT * FROM `equipos` WHERE `equipos_severifica`='si' 
AND `equipos_fechaproxver`<= '2026-12-12' AND `equipos_estado` IN('1','4');

SELECT * FROM `equipos` WHERE `equipos_semantiene`='si' 
AND `equipos_fechaproxman`<= '2026-12-12' AND `equipos_estado` IN('1','4');



Probe


SELECT * FROM `equipos` WHERE `equipos_secalibra`='si' 
AND `equipos_fechaproxcal`<= '2026-12-12' or `equipos_severifica`='si' 
AND `equipos_fechaproxver`<= '2026-12-12' OR `equipos_semantiene`='si' 
AND `equipos_fechaproxman`<= '2026-12-12' AND `equipos_estado` IN('1','4'); 



perono me fucniona adecuadamente, me sigue entregando estados del tipo 2.


13-Aug-2025 14:16
Nacho Cabanes (+84)

Cuidado con fusionar los AND y los OR, porque no tienen la misma prioridad: siempre se van a procesar antes los AND, por lo que es frecuente que necesites paréntesis.

Lo de "fusionar" es ambiguo. Supongo que te refieres a que te aparezcan los resultados de las tres consultas en una sola, con lo cual habría que enlazar con OR la condición que cambia ("si ocurre esto, o esto, o esto").

Es decir, podría ser algo así:


SELECT * FROM equipos 
WHERE equipos_fechaproxcal <= '2026-12-12' 
AND equipos_estado IN('1','4');
AND 
(
    equipos_secalibra='si' OR
    equipos_severifica='si' OR
    equipos_semantiene='si'
);


 






Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...