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

Unos ejercicios...

Estas en el tema de Unos ejercicios... en el foro de Bases de Datos General en Foros del Web. Sé que es complicado y dejo claro que no quiero que una sola persona me ayude en esto (aunque si quiere le estaré eternamente agradecido). ...
  #1 (permalink)  
Antiguo 22/02/2012, 08:57
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Información Unos ejercicios...

Sé que es complicado y dejo claro que no quiero que una sola persona me ayude en esto (aunque si quiere le estaré eternamente agradecido).

Tengo 7 ejercicios que hacer para un curso, y sinceramente me juego el aprobado o el suspenso, por eso pido vuestra ayuda. Pongo los ejercicios por aquí y contestáis los que queráis, pero por favor, al menos ojearlos que no son difíciles (para quien manejáis este tema...)


1) Crear un TRIGGER llamado 'ShowCustomerInserted' que cuando se hace una inserción de valores en la tabla “clientes” llame a un procedimiento llamado ‘showcustomer’.Dicho procedimiento mostrará la siguiente información: nombre y apellidos (clientes), dirección, email, phone, 'cliente insertado' (info).


2) Para hacer la inserción de datos en la tabla clientes realizar un procedimiento llamado “AddCustomers”


3) a.Crear una tabla llamada ' temporal' que contiene los siguientes campos:
- cliente varchar (70), saldo type_saldo, puntos smallint, concepto varchar (40), precio integer, precioFinal integer.

b. Crear una tabla llamada premios con los siguientes campos:
- idpremio int identity (1,1) primary key, concepto varchar (40), precio integer.
Los datos que contiene la tabla premios son los siguientes:
- Tostadora precio 55€, batidora precio 75€, tablet 110€, tv lcd 23.240€


4) Crea una función llamada bank.Calcupuntos tal que por cada 1€ tengo 0,25 puntos. Por ejemplo, una persona con 1000€ en su saldo tendrá 250 puntos.


5) Una vez que sabemos los puntos calcularemos en cuanto se queda el premio según sus puntos. Para ello calcularemo con una función llamada 'CalcuFinalPrice' con las siguientes condiciones:
de 100 pts hasta 125 = 10% dcto
de 125 ptos hasta 150 = 15% dcto
de 150 ptos hasta 200 = 20% dcto
de 200 ptos hasta 500 = 25% dcto
de 500 ptos hasta 1000 = 40% dcto
de 1000 ptos hasta 1500 = 50% dcto


6) Insertar valores en la tabla temporal por medio de un select y por medio del uso de las funciones “calcuPuntos” y “calcufinalprices”


7) Crea una vista llamada 'toaster' que muestre solo lo que le cuesta a cada cliente la tostadora según los puntos que tiene en cada cuenta. Campos a mostrar:
Cliente, puntos, concepto, precio, precioconDcto
  #2 (permalink)  
Antiguo 22/02/2012, 09:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Unos ejercicios...

Tarea??? Parece ser que si te juegas un suspenso y vienes aqui a esperar que alguien te resuelva la vida?? No niñ@ esta mal, cuanto vale para ti un suspenso???

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/02/2012, 10:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Unos ejercicios...

Cita:
Pongo los ejercicios por aquí y contestáis los que queráis, pero por favor, al menos ojearlos que no son difíciles (para quien manejáis este tema...)
No, no son difíciles. La verdad que no.
De hecho son tan sencillos que si no puedes responderlos tu mism@ entonces no mereces aprobar el curso.

Así de simple...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 22/02/2012, 10:59
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

1º)Create trigger ShowCustomerInserted
as
declare @nombre varchar (20), @apellidos varchar(20), @direccion varchar (30), @email varchar (30),
@phone varchar (30), @clientes varchar (30)

select @nombre=nombre from bank.clientes, @apellidos=apellidos from bank.clientes,
@direccion from bank.clientes, @email from @bank.clientes, @phone from @bank.clientes
@clientes from bank.clientes

begin
print @nombre, @apellidos, @direccion, @email, @phone, @clientes
end


decidme si la he cagado mucho...
  #5 (permalink)  
Antiguo 22/02/2012, 11:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Unos ejercicios...

si mucho, no tienes ni idea de como hacer un trigger, te falta especificar la tabla que va a afectar, si va a ser un insert, update o delete lo que dispare un trigger, sabes que es un trigger???

checate estas ligas:

http://msdn.microsoft.com/en-us/library/ms189799.aspx

http://www.go4expert.com/forums/showthread.php?t=15510

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 22/02/2012, 11:30
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

create procedure showcustomer
as
select nombre+" "+apellidos, direccion, email, phone, ‘cliente insertado’
from inserted

create trigger showcustomerinserted
on bank.clientes for inserted
as
exec showcustomer


asi mejor??
  #7 (permalink)  
Antiguo 22/02/2012, 11:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Unos ejercicios...

Código SQL:
Ver original
  1. CREATE TRIGGER ShowCustomerInserted ON clientes after INSERT
  2.     AS
  3.     DECLARE @cliente AS INT
  4.     SELECT @cliente=id_cliente FROM inserted
  5.     EXEC sp_showcustomer @cliente

Código SQL:
Ver original
  1. CREATE PROCEDURE sp_showcustomer (@cliente AS INT)
  2.     AS
  3.     BEGIN
  4.      SELECT datos FROM cliente WHERE id_cliente=@cliente
  5.     END

Continua con lo demas :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 22/02/2012, 12:13
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

2)Para hacer la inserción de datos en la tabla clientes realizar un procedimiento llamado “AddCustomers”

create procedure addCustomers (@nombre varchar (20), .......) <--todos los datos
as
declare @nombre varchar (20), ....... <--todos los datos

insert into bank.clientes (@nombre, @ .......) <--todos los datos


------------------------------------------------------
3)
a)Crear una tabla llamada ' temporal' que contiene los siguientes campos:
- cliente varchar (70), saldo type_saldo, puntos smallint, concepto varchar (40), precio integer, precioFinal integer.


exec sp_addtype type_saldo,'money','null';
create temporal
(
todos los datos
)


b. Crear una tabla llamada premios con los siguientes campos:
- idpremio int identity (1,1) primary key, concepto varchar (40), precio integer.
Los datos que contiene la tabla premios son los siguientes:
- Tostadora precio 55€, batidora precio 75€, tablet 110€, tv lcd 23.240€


create table premios
(
todos los datos
)

inser into "datos1" values...
inser into "datos2" values...
inser into "datos3" values...
inser into "datos4" values...

---------------------------------------------------------------------------

4º Crea una función llamada bank.Calcupuntos tal que por cada 1€ tengo 0,25 puntos. Por ejemplo, una persona con 1000€ en su saldo tendrá 250 puntos.

create function Calcupuntos (@saldo money)
return smallint
as
begin
declare @puntos smallint, @saldo money
set @puntos=@saldo*0.25
return @puntos
end

----------------------------------------------

5) Una vez que sabemos los puntos calcularemos en cuanto se queda el premio según sus puntos. Para ello calcularemo con una función llamada 'CalcuFinalPrice' con las siguientes condiciones:
de 100 pts hasta 125 = 10% dcto
de 125 ptos hasta 150 = 15% dcto
de 150 ptos hasta 200 = 20% dcto
de 200 ptos hasta 500 = 25% dcto
de 500 ptos hasta 1000 = 40% dcto
de 1000 ptos hasta 1500 = 50% dcto


Este no tengo mucha idea, he encontrado por ahi algo pero no es lo que quiere el ejercicio, a ver si me podeis ayudar...


create function bank.CalcufinalPrice (@puntos smallint, @precio money)
returns integer
as
begin
declare @puntos smallint, @precio money, @final integer
case @puntos
when '> 100 and < 125' then set @final=@precio*0.10
when '> 125 and < 150' then @final=@precio*0.15
when '> 150 and < 200' then @final=@precio*0.20
when '> 200 and < 500' then @final=@precio*0.25
when '> 500 and < 1000' then @final=@precio*0.40
when '> 1000 and < 1500' then @final=@precio*0.50

set @final=@precio-@final
end
return @final
end
  #9 (permalink)  
Antiguo 22/02/2012, 12:18
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

6) Insertar valores en la tabla temporal por medio de un select y por medio del uso de las funciones “calcuPuntos” y “calcufinalprices”

Este es el que no tengo nada de idea...

Etiquetas: tabla, campos
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 04:09.