elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Subconsulta en sql server
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Subconsulta en sql server  (Leído 776 veces)
vladi89

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Subconsulta en sql server
« en: 14 Febrero 2017, 09:29 »

Buenas tengo una base de datos para gestionar un alquiler de bicicletas, quiero saber las bicicletas cuya fecha de devolución [FeDev] sea inferior a la fecha actual.

BICICLETA

CREATE TABLE [dbo].[BICICLETA] (
    [IdBici]    NCHAR (10)    NOT NULL,
    [marca]     NVARCHAR (15) NOT NULL,
    [precio]    MONEY         NULL,
    [alquilada] BIT           NULL,
    CONSTRAINT [PK_BICICLETA] PRIMARY KEY CLUSTERED ([IdBici] ASC)
);

ALQUILER
CREATE TABLE [dbo].[ALQUILER] (
    [IdAlquiler] BIGINT     NOT NULL,
    [FeAlquiler] DATE       NULL,
    [FeDev]      DATE       NULL,
    [IdBici]     NCHAR (10) NOT NULL,
    [IdCliente]  NCHAR (20) NOT NULL,
    CONSTRAINT [PK_ALQUILER] PRIMARY KEY CLUSTERED ([IdAlquiler] ASC),
    CONSTRAINT [FK_ALQUILER_BICI] FOREIGN KEY ([IdBici]) REFERENCES [dbo].[BICICLETA] ([IdBici]),
    CONSTRAINT [FK_ALQUILER_CLIENTE] FOREIGN KEY ([IdCliente]) REFERENCES [dbo].[CLIENTE] ([IdCliente])
);


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.329


Ver Perfil
Re: Subconsulta en sql server
« Respuesta #1 en: 14 Febrero 2017, 16:56 »

Selecciona - de la tabla alquiler - el idbici - cuando fedev < ahora

- Esto te arrojará todos los registros de las bicicletas que han sido devueltas... No es una consulta (creo a juicio mío), muy sensata, porque te dará incluso los alquieleres del año pasado, y del de hace dos años (porponer que tienes el negocio ya un tiempo largo).

- Quizás fuera más provechoso limitar la fecha a un rango, entre ahora y pongamos 2 meses atrás.

Selecciona - de la tabla alquiler - el idbici - cuando fedev - esté entre ahora y ahora-2meses.

- Todavía, sería más útil preguntar por los clientes que alquilaron bicis que aún no han sido devueltas, pero que fueron alquiladas hace ya x tiempo (tiempo excesivamente demorado), pongamos que se alquuilaron hace ya 2 meses.

Selecciona - de la tabla alquiler - el idalquiler - cuando fedev = null y fealquiler=(ahora-2meses)

- Un consejo más, es que sería bueno (si lo consideras útil según tengas enfocado el negocio), tener un campo más en la tabla alquiler, llamado FechaLimite, y que tendría el carácter de: Fecha en que un cliente debe devolver la bici (conviene que al cliente en su recibo de alquiler venga esa fecha, pero en la base de datos figure aún otro campo más llamado por ejemplo: FechaRelaxMax, con el carácter, de extensión de la fecha para no ser tan estrictos, al reclamar al cliente, y que podría valer 1 día, en temporada alta, o 3 en temporaba baja (por ejemplo)... es decir que si un cliente se pasa del día de devolución (FechaLimite), se esperará antes de reclamarle, la FechaRelaxMax, así podrías hacer una consulta, llamada ClientesAReclamar:

Selecciona - de la tabla alquiler - el idalquiler - cuando fedev = null y fechalimite+fecharelaxmax < ahora

- Esto es: entrégame aquellos registro de alquiler cuando la bici no haya sido aún entregada y la fecha límite + el período de concesión, haya vencido.

El trabajo de pasar la consulta a SQL, queda a tu esfuerzo  :silbar: :silbar: , seguramente al final querrás afinarlas más...


En línea

MNicolas

Desconectado Desconectado

Mensajes: 127


Developer


Ver Perfil WWW
Re: Subconsulta en sql server
« Respuesta #2 en: 17 Febrero 2017, 17:23 »

SELECT A.*, B.* FROM Alquiler A INNER JOIN Bicicleta B ON A.IdBici = B.IdBici WHERE A.FeDev < GETDATE()
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error subconsulta MySQL!
Programación Visual Basic
ferlucas 1 1,251 Último mensaje 20 Agosto 2005, 10:48
por Numeros
Problema al instalar Ubuntu 10.10 server con windos xp y 2003 server
GNU/Linux
Norlak 5 5,057 Último mensaje 27 Octubre 2010, 18:11
por lealesdibua
Consulta y Subconsulta SQL SERVER
Bases de Datos
daniel.r.23 0 1,126 Último mensaje 31 Octubre 2014, 22:19
por daniel.r.23
Error Subconsulta Mysql
Bases de Datos
mapers 3 1,423 Último mensaje 26 Mayo 2015, 07:35
por seba123neo
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines