Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta SQL que no me sale (https://www.clubdelphi.com/foros/showthread.php?t=67568)

Rockin 23-04-2010 10:07:06

Consulta SQL que no me sale
 
Buenas a todos compañero, tengo que hacer una consulta, la cual no se si es posible o no, lo he intentado de varias maneras pero nada.

A ver si me explico bien, tengo una tabla con un campo pedido, estado_pedido, en el campo pedido aparece el mismo pedido varias veces con su estado, lo que quiero hacer es hacer una consulta que me devuelva todos los distintos pedidos que no cumplan uno de los estados, en este caso, 'Confirmacion de entrega', os pongo un ejemplo con datos:

Pedido Estado
123456 Pendiente
123456 En curso
123456 En logistica
123456 Confirmacion Entrega
654321 Pendiente
654321 Incidencia
654321 Cancelada
789456 Pendiente
789456 Sin stock

Lo que quiero es hacer que me devuelva los registros 654321 y 789456 ya que en ninguno de los estados está 'Confirmación de entrega'.

Espero haberlo explicado bien.

Gracias de antemano.

tgsistemas 23-04-2010 11:08:11

hola Rockin,

no dices con que bbdd trabajas, pero entiendo que sería algo como

Código SQL [-]
select Pedido, Estado 
from nombretabla
where Estado <> 'Confirmacion Entrega'
order by Pedido

no se si lo he entendido bien :p

ElKurgan 23-04-2010 11:22:03

Cita:

Empezado por tgsistemas (Mensaje 361679)
hola Rockin,

no dices con que bbdd trabajas, pero entiendo que sería algo como


Código SQL [-]
select Pedido, Estado
from nombretabla
where Estado <> 'Confirmacion Entrega'
order by Pedido





no se si lo he entendido bien :p

Creo que con esa consulta saldrían también los códigos que han pasado por la confirmación de entrega, pero que tienen registros anteriores en otro estado. A lo mejor así si que te sale:

Código SQL [-]
 
select Pedido, Estado where Pedido not in 
(select distinct Pedido where estado = 'Confirmacion Entrega')
Un saludo

ElKurgan 23-04-2010 11:22:43

evidentemente, me he comido el "from nombreTabla"

Mil disculpas
Un saludo

Rockin 23-04-2010 11:23:30

Voy a probarlo y te digo algo.

Rockin 23-04-2010 12:15:51

Así me va perfecto.

Gracias.

Caro 23-04-2010 16:08:48

Hola, otra forma de hacerlo sería esta:

Código SQL [-]
Select p.pedido, p.estado
From Pedidos p Left Join (Select distinct pedido 
                           From Pedidos Where estado='Confirmacion Entrega') p1
       On p.pedido=p1.pedido
where p1.pedido is null

Saluditos


La franja horaria es GMT +2. Ahora son las 11:57:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi