Jump to content


Photo

[RESUELTO] problemas para obtener un query


  • Please log in to reply
6 replies to this topic

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 12 March 2011 - 02:48 PM

Que tal amigos, ahora aca andamos con un problemilla...

les platico:

tengo una tabla donde manejo ciertos estatus de un registro es decir, tengo lo siguiente:


clave:  estatus:
12        inicio
12        venta
14        inicio
14        venta
14        cancelar
15        inicio
18        inicio
18        venta
18        cancelar


en fin quiero obtener de esta tabla aquellas claves que tengan venta, pero que no tenga cancelar

intente lo siguiente pero no me da nada

select * from tabla where (estatus='venta') and (estatus<>'cancelar')


que estoy haciendo mal?????

   
  • 0

#2 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4266 posts
  • LocationCosta Rica

Posted 12 March 2011 - 04:29 PM

Hola
SELECT distinct Clave, Estatus  FROM tabla WHERE estatus = 'venta' 

Me da la impresion de que el asunto esta en la repeticion de la clave.
Saludos
  • 0

#3 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 posts
  • LocationOaxaca, México

Posted 12 March 2011 - 05:34 PM

Buenas tardes, como bien apunta Caral, el detalle esta en la repetición de claves, lo que hace el asunto un poco complejillo, he probado con una tablita en firebird, te sugiero crear un indice sobre el campo <estatus>, para evitar contratiempos con la ejecución del query.

Así que he ejecutado este sql (subconsulta) con aparente exito y esta sujeto a mejoras:

 
select distinct clave
from temp_table
where (status = 'VENTA') and clave not in (Select distinct clave from temp_table where status = 'CANCELAR')


Saludos.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 12 March 2011 - 10:08 PM

Hola amigo Raúl, a ver si te sirve eso


SELECT * FROM PRUEBA
WHERE estatus = 'VENTA'

UNION

SELECT * FROM PRUEBA
WHERE estatus NOT IN ('CANCELAR')


Salud OS
  • 0

#5 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 posts
  • LocationMéxico D.F.

Posted 12 March 2011 - 10:19 PM

Gracias amigos, como siempre, sus aportaciones me sacan de apuros.

caral, con ese query me salen los registros que tambien tienen como estatus 'cancelar'
egostar, de igual manera.

para lo que necesito el query de fredycc me resolvio el problema.

saludos y gracias, doy por resuelto el tema.

(y) (y) (b) (b) (b)
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14448 posts
  • LocationMéxico

Posted 12 March 2011 - 10:27 PM

Ah pues que bien, ponemos el hilo como resuelto (y)

Salud OS
  • 0

#7 Beto Chavez

Beto Chavez

    Newbie

  • Miembros
  • Pip
  • 5 posts

Posted 31 March 2011 - 11:38 AM

si quieres obtener algunos estado de la misma columna, debes hacer asi.


SELECT * FROM tabla WHERE estatus in ('venta','cancelar')

Esto te sacara los estatus venta y cancelar.


  • 0




IP.Board spam blocked by CleanTalk.