Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Atascado en una query. ¿Pueden ayudarme?

Estas en el tema de Atascado en una query. ¿Pueden ayudarme? en el foro de Bases de Datos General en Foros del Web. Buenos dias a todos. Estoy atascado en una query, donde quiero que haga lo siguiente: Tengo tres tablas, con las siguientes relaciones: Código: Articulos DetalleFactura ...
  #1 (permalink)  
Antiguo 08/12/2005, 05:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 141
Antigüedad: 20 años, 11 meses
Puntos: 0
Pregunta Atascado en una query. ¿Pueden ayudarme?

Buenos dias a todos.

Estoy atascado en una query, donde quiero que haga lo siguiente:
Tengo tres tablas, con las siguientes relaciones:

Código:
Articulos          DetalleFactura          Factura          Clientes
IdArticulo<--------IdArticulo              IdCliente------->IdCliente
                   IdFactura-------------->IdFactura
En la tabla artículos hay un campo "Lógico", donde detallo a cada artículo si es una novedad, o no.

La Query que deseo realizar: ¿Que artículos "novedad" de un determinado cliente no han sido facturados?

Seguramente me habré dado en la nariz con la respuesta , pero estoy totalmente bloqueado

Muchas gracias por todo.

P.D. He actualizado las relaciones, ya que las tenia mal redactadas.

Última edición por NeoZ; 08/12/2005 a las 06:23
  #2 (permalink)  
Antiguo 08/12/2005, 06:43
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 10 meses
Puntos: 0
SELECT
*.A
FROM
Articulos A
With(NoLock)
INNER JOIN
DetalleFactura Df
With(NoLock)
ON a.IdArticulo=Df.IdArticulo
INNER JOIN
Factura f
With(NoLock)
ON df.IdFactura=f.IdFactura
INNER JOIN
Clientes c
With(NoLock
ON f.IdCliente=c.IdCliente
WHERE
a.Novedad=1
AND c.IdCliente=@IdCliente
__________________
Un saludo,
Trucos
Videos
  #3 (permalink)  
Antiguo 08/12/2005, 16:30
 
Fecha de Ingreso: diciembre-2003
Mensajes: 141
Antigüedad: 20 años, 11 meses
Puntos: 0
Gracias Dynk, pero no me funcionó.

Las pruebas las estoy realizando bajo ACCESS 2003.

Se me ocurre que también podria hacer lo siguiente:
- Realizar una consulta de los artículos facturados a un cliente
- Realizar una consulta de artículos no coincidentes que sean novedad (tabla artículos), con los resultados de la consulta anterior

De esta manera ya tendira los artículos novedad no coincidentes para ese cliente en concreto.

Pero... como puedo realizar una consulta de una consulta? "Toy confundio"

Gracias y saludos!!!
  #4 (permalink)  
Antiguo 09/12/2005, 07:36
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 20 años
Puntos: 0
saludos Prueba con esta Instruccion
Cita:
SELECT Articulo.Novedad, Articlo.IdArticulo
FROM Articulo
WHERE (((Articulo.Novedad)="S") AND ((Articulo.IdArticulo) Not In (SELECT Articulo.IdArticulo
FROM Articulo INNER JOIN ((Cliente INNER JOIN factura ON Cliente.idCliente = factura.IdCliente) INNER JOIN DetalleFactura ON factura.IdFactura = DetalleFactura.IdFactura) ON Articulo.IdArticulo = DetalleFactura.IdArticulo
WHERE (((Cliente.idCliente)=1)) )));
Esto es en Access a ver si te funciona

Saludos y suerte
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #5 (permalink)  
Antiguo 09/12/2005, 14:11
 
Fecha de Ingreso: diciembre-2003
Mensajes: 141
Antigüedad: 20 años, 11 meses
Puntos: 0
Bingo!!! JoseGCB

Fantástico, funciona a la perfección.

Muchisimas gracias, de verdad.

Saludos!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:17.