Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2005
fede7 fede7 is offline
Registrado
 
Registrado: Jun 2005
Posts: 9
Poder: 0
fede7 Va por buen camino
Ayuda en correccion de ejercicios sql

Dada la siguiente base de Datos:
Clientes(num_cliente,nombre,apellidos,codigo_postal)
Facturas(num_factura,num_cliente,fecha,totalsiniva,iva,totalconiva)
LineaFactura(num_factura,linea_factura,num_articulo,precio_unitario,cantidad,descuento,total_linea)(el descuento se extresa en tanto por 1)
Articulos(num_articulo,nombre,precio)

Tengo muchos fallos al hacer los ejercicios para examinarme de sql y me gustaria que alguien q supiera si tiene un ratejo para decirme si tan bien o mal y en q fallo se lo agradeceria.

Para empezar pondre uno.

1.-Lista los articulos (num_articulo,nombre,precio) no vendidos en el ultimo mes (ultimos 31 dias)
2.-Lo mismo pero listar clientes que no han comprado un articulo en el ultimo mes.

Solucion que doy:
1.-
Código:
 SELECT num_articulo,nombre,precio 
From Articulos
Where num_articulo NOT IN(Select num_factura
From LineaFactura Join Facturas
Where num_articulo IN(Current_Date-Interval = '31' Day)
2.-
Código:
 SELECT num_cliente,nombre,apellidos,codigo_postal
From Clientes
Where num_Cliente NOT IN( Select num_factura
From Facturas
Where num_cliente IN(Current_Date-Interval = '31' Day)
Gracias

Última edición por fede7 fecha: 17-06-2005 a las 20:14:55.
Responder Con Cita
  #2  
Antiguo 17-06-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: May 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.874
Poder: 21
delphi.com.ar Va por buen camino
Se parece terriblemente a los primeros puntos de una evaluación que yo daba para entrevistas laborales ...

Código SQL [-]
SELECT num_articulo, nombre, precio 
FROM Articulos a
WHERE NOT EXISTS (SELECT 1
       FROM LineaFactura LF, Facturas F
       WHERE LF.num_factura = F.num_factura
       AND LF.num_articulo = A.num_articulo
       AND FECHA ... {La comparación depende del motor})

El otro es similar pero con la tabla de artículos.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 17-06-2005
fede7 fede7 is offline
Registrado
 
Registrado: Jun 2005
Posts: 9
Poder: 0
fede7 Va por buen camino
Hola, gracias por tu respuesta pero lo que me pones me es totalmente desconocido. La solucion que busco debe ser mas simple.

El exists no lo uso en ningun ejercicio, el select siempre seleccionamos un campo no numeros y lo de F y LF y tal tp me suena.

Tiene q ser algo similar a lo q puse. Q igual el profesor tb lo explica mal pero si le pongo esto me suspende fijo pq no es lo q el explica, jeje.
No se si me explico.... El as por ejemplo solo lo he usado en vistas creo recordar, en consultas simples no explico nada para ponerlo.

Se q es un poco extraño pero es lo q me piden.

saludos
Responder Con Cita
  #4  
Antiguo 21-06-2005
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: Jan 2005
Ubicación: Galicia
Posts: 595
Poder: 14
Ivanzinho Va por buen camino
Código SQL [-]
 
SELECT num_articulo,nombre,precio 
From Articulos
Where num_articulo NOT IN(
        SELECT num_articulo
        FROM LineaFactura LF, Facturas F
        WHERE LF.num_factura = F.num_factura
        AND FECHA ... {La comparación depende del motor})

Lo de LF y F son nombres por los que se sutituye le nombre de la tabla y se usan para saber a que tabla pertenece cada campo ya que hay campos con el mismo nombre en las dos tablas implicadas en el join.

Pero prueba a borrar todos lo LF y F y prueba a ver si te funciona igual.

La otra consulta sería semejante.

Un saludo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 21-06-2005 a las 12:50:34.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:28:33.


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