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

Unos ejercicios...

Estas en el tema de Unos ejercicios... en el foro de SQL Server 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:58
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Pregunta 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, 10:00
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...

Como dices no son dificiles, buscale un poquito en google no?? digo si te juegas un suspenso como dices, como es posible que esperes que las respuestas te caigan del cielo?? que es lo que llevas echo de estos ejercicios?? pon las dudas que tengas no esperes que alguien los resuelva por ti, luego porque hay tanto "informatico mediocre....

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, 11:00
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

1º)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



decidme si la he cagado mucho...

Última edición por torsku; 22/02/2012 a las 11:29
  #4 (permalink)  
Antiguo 22/02/2012, 11:30
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
Mensaje 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

para el trigger que pides seria algo asi:

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

y el procedimiento
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
Lo demas esta sencillo ;) no lo dijiste tu???
Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 22/02/2012, 11:46
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

muchisimas gracias tio, en serio gracias.

el 2 es algo asi??

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
  #6 (permalink)  
Antiguo 22/02/2012, 11:53
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

el 3 asi

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


b)
create table premios
(
todos los datos
)

inser into "datos1" values...
inser into "datos2" values...
inser into "datos3" values...
inser into "datos4" values...
  #7 (permalink)  
Antiguo 22/02/2012, 11:56
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

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

Última edición por torsku; 22/02/2012 a las 12:01
  #8 (permalink)  
Antiguo 22/02/2012, 12:05
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

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

Última edición por torsku; 22/02/2012 a las 12:14
  #9 (permalink)  
Antiguo 22/02/2012, 12:16
 
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...
  #10 (permalink)  
Antiguo 22/02/2012, 12:37
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...

6.-Seria algo asi:


insert into temporal
select precio_final(calcula_puntos(puntos),precio) as precio_final from temporal


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

y los demas como los tengo?? Mas o menos al menos...
  #12 (permalink)  
Antiguo 22/02/2012, 12:46
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 se ven mas o menos bien :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 22/02/2012, 12:49
 
Fecha de Ingreso: febrero-2012
Mensajes: 15
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Unos ejercicios...

En serio tio, muchisimas gracias, y aclaro que tenia los ejercicios pero simplemente era por comparar. Sé que ha parecido un poco malo por mi parte preguntarlo asi, pero me movia la desesperacion...

Un saludo y de verdad que gracias...

Etiquetas: select, 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:02.