Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-01-2008
Recca Recca is offline
Miembro
 
Registrado: ene 2008
Posts: 11
Poder: 0
Recca Va por buen camino
Novato en SQL. Dudas con consultas.

Hola a todos. Soy nuevo en este foro y la verdad es que me alegro bastante de haber podido encontrar una página como esta. Mi problemas es que tengo que hacer un montón de consultas en SQL y tengo muy poco tiempo. Espero que alguien tenga la amabilidad de echarme una mano porque ya no se qué hacer.

Las tablas con las que trabajo son las siguientes:

EMPRESA(NIF,Ciudad,Nombre)
VENTA(NIF_Vendedora,NIF_Compradora,Fecha)
PRODUCTO(Cod_Producto,Precio)
ESTADO(Cod_Estado,Estado)
CAMBIO(Cod_Estado,Cod_Producto,Fecha)

La tabla ESTADO almacena todos los estado por los que ha pasado un producto. El 1 es "en almacen", el 2 "en venta" y el 3 "agotado".

Las consultas que se me piden son las siguientes:

- NIF de la empresa que más productos ha vendido en el último mes(pensaba que podía hacerlo con MAX(COUNT) pero se ve que no puedo usar una fución de agregación dentro de otra).
- Pareja de empresas que más operaciones(compra o venta) han realizado entre ellas.
- Qué productos han pasado por un estado en el que ya habían estado(aquí hay que hacer algo comparando fechas pero no se como se hace)
- Qué producto se ha agotado más rápido después de ponerse a la venta.

Hay alguna más pero sobre todo estas 4 se me atascan y no sé ni por dónde empezar. Estaré eternamente agradecido a quien me pueda echar una mano con esto. Feliz año a todo el mundo!!!
Responder Con Cita
  #2  
Antiguo 03-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Hola.

En primer lugar, bienvenid@ al clubdelphi. Este sitio tiene mucha información que te ayudará a escribir consultas sql.

Te recomiendo leer la guia de estilo y respetar las normas del foro.

Sobre la primera consulta, podes basarte solamente en la consulta que haga el count, ordenarla de mayor a menor y devolver solamente el primer registro. Dependiendo del motor, la sintaxis podría ser algo como:

Código SQL [-]
  select first 1 nif, count(*)
     from .....

--o bien

  select top 1 nif, count(*)
    from ....

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 03-01-2008
Recca Recca is offline
Miembro
 
Registrado: ene 2008
Posts: 11
Poder: 0
Recca Va por buen camino
waaaahh!!!

Muchas gracias jachguate. Te debo una, ahora mismo voy a probarlo.

Por cierto, para lo de las consultas utilizo el acces pero es sólo para probar si están bien, pero si pueden servir en otro motor tb e sirven. Eternamente agradecido
Responder Con Cita
  #4  
Antiguo 03-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
uf... el SQL de access es muy retorcido...

la verdad, no me gusta nada...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 03-01-2008
Recca Recca is offline
Miembro
 
Registrado: ene 2008
Posts: 11
Poder: 0
Recca Va por buen camino
ando un poco perdido, a lo mejor no he comprendido bien como funciona esa instruccion. Sería algo así?


SELECT FIRST 1 NIF
FROM (SELECT NIF_Vendedora,COUNT(*)
FROM VENTA GROUP BY NIF ORDER BY(COUNT(*)))


Seguramente no. Pido disculpas si parece una aberración. Aun estoy aprendiendo y ahora en Navidades no tengo al profesor para preguntarle las dudas
Responder Con Cita
  #6  
Antiguo 03-01-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Código SQL [-]
Declare @Mes integer
If Month(GetDate()) = 1 begin
  Select @Mes = 12
end else
  Select @Mes =  Month(GetDate()) - 1

Select Top 1 E.Nif, Count(V.Nif_Vendedora)
From Venta V 
join Empresa E on V.NIF_Vendedora = E.NIF
Where Month(V.Fecha) = @Mes
Group By E.Nif
Order by Count(V.Nif_Vendedora) desc

Eso funciona en SQL Server
__________________


Última edición por ContraVeneno fecha: 03-01-2008 a las 15:53:10.
Responder Con Cita
  #7  
Antiguo 03-01-2008
Recca Recca is offline
Miembro
 
Registrado: ene 2008
Posts: 11
Poder: 0
Recca Va por buen camino
mil gracias contraveneno. Ahora voy a probarlo.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Novato total y con muchas dudas Taburete OOP 3 03-05-2007 12:09:03
Consultas SQL V.S. Consultas Clipper AGAG4 SQL 7 20-12-2005 15:59:31
Pregunta de novato.. pero de muy novato CFPA86 PHP 1 08-08-2004 06:53:42
Novato fabu_dina Firebird e Interbase 1 02-07-2004 21:15:40
varias dudas sobre consultas y refresco de datos Giniromero Conexión con bases de datos 12 01-03-2004 12:50:11


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


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
Copyright 1996-2007 Club Delphi