AND y OR

Esta es una discusión para el tema AND y OR en el foro Lenguajes de Programación, bajo la categoría Área Administrativa; Que tal! estoy tratando de hacer una consulta que en teoría debería usar ADN y OR, el problema es que sql no la suporta... alguien sabe como poder hacer esto?? la consulta seria mas o ...
Página:


Resultados 1 al 3 de 3
  1. #1
    Miembro Array
    Fecha de ingreso
    15 feb, 04
    Mensajes
    4
    Gustado
    0 Veces
    Me Gustan
    0 Veces

    Predeterminado AND y OR

    Que tal! estoy tratando de hacer una consulta que en teoría debería usar ADN y OR, el problema es que sql no la suporta... alguien sabe como poder hacer esto??

    la consulta seria mas o menos asi:
    SELECT * FROM mitabla WHERE tipo_docto=1 OR tipo_docto=2 OR tipo_docto=3 AND tipo_docto=4;

    Lo que he intentado es hacer primero la consulta de los OR y despues con una clave seleccionar todo de los documentos que sean de tipo 4 ... el problema es para recorrer un arreglo por renglones, lo he intentado con foreach pero me genera errores...

    Alguien sabe cómo solucionar lo de los AND y OR ???? Saludos ! :confused:

  2. #2
    Miembro Array
    Fecha de ingreso
    15 feb, 04
    Mensajes
    4
    Gustado
    0 Veces
    Me Gustan
    0 Veces

    Predeterminado Re: AND y OR

    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 !

  3. #3
    Miembro Array
    Fecha de ingreso
    15 feb, 04
    Mensajes
    4
    Gustado
    0 Veces
    Me Gustan
    0 Veces

    Predeterminado Re: AND y OR

    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 !