Nuevamente....
Tengo un problema al querer utilizar la sentencia OR y AND en una consulta. Necesito seleccionar
los documentos que sean de tipo 1 ó 2 ó 3 y 4.
La consulta sería la siguiente:
SELECT * FROM seguimiento WHERE seg_tipo_docto=1 OR seg_tipo_docto=2 OR seg_tipo_docto=3 AND
seg_tipo_docto=4;
TABLA seguimiento
+---------+--------------+---------------+----------------+---------------+
| seg_cve | seg_cve_dest | seg_no_docto | seg_tipo_docto | seg_docto_est |
+---------+--------------+---------------+----------------+---------------+
| 1 | 2 | DSIS/1/2004 | 1 | 1 |
| 2 | 1 | ARG/2/2004 | 2 | 1 |
| 3 | 1 | ARG/3/2004 | 3 | 1 |
| 4 | 1 | OIOPDM/4/2004 | 3 | 1 |
| 5 | 3 | ARG/5/2004 | 3 | 1 |
| 6 | 1 | ARG/5/2004 | 4 | 1 |
| 7 | 2 | ARG/5/2004 | 4 | 1 |
+---------+--------------+---------------+----------------+---------------+
El problema es que en SQL no se puede combinar OR y AND.
Básicamente el tipo de documento 1 representa un circular, el tipo 2 un memorando y el tipo 3 un
oficio, el tipo 4 es un tipo de comentario que se hace en base en algun documento original (1, 2
ó 3).
Necesito tomar los documento originales y sus comentarios, por ejemplo: El documento que tiene
seg_cve=5 es de tipo 3 (oficio) y tambien tiene dos comentarios, seg_cve=6 y seg_cve=7. Espero
que se entienda.
Lo que he tratado de hacer es seleccionar el número de documento "seg_no_docto" de los documentos
de tipo 1 ó 2 ó 3, esa consulta colocarla en un arreglo e ir después comparando cada fila de la
consulta, es decir, En este caso selecionaríamos:
SELECT seg_cve, seg_no_docto, seg_tipo_docto FROM seguimiento WHERE seg_tipo_docto=1 OR
seg_tipo_docto=2 OR seg_tipo_docto=3;
+---------+---------------+----------------+
| seg_cve | seg_no_docto | seg_tipo_docto |
+---------+---------------+----------------+
| 1 | DSIS/1/2004 | 1 |
| 2 | ARG/2/2004 | 2 |
| 3 | ARG/3/2004 | 3 |
| 4 | OIOPDM/4/2004 | 3 |
| 5 | ARG/5/2004 | 3 |
+---------+---------------+----------------+
Colocandolo en un arreglo en el primer renglon quedaría todo lo relacionado con seg_cve=1, en el
segundo renglon todo lo relacionado a seg_cve=2 y asi susecivamente, tomando los números de
documento en una segunda consulta quiero seleccionar los documentos de tipo 4 (seg_tipo_docto=4)
de cada uno de los renglones, si es que tienen. Verificar si DSIS/1/2004 tiene un tipo 4 y cada
renglon susecivamente... el problema es que no se cómo recorrer los reglones de un arreglo.
Espero que alguien me pueda ayudar, ya van varias semanas que he tratado de sacar esto y no he
podido... he probado con next(), con un ciclo foreach.
Espero no haberlos enrredado, y gracias por la atención. Nos vemos !