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

Procedimiento con fecha y opción a elegir.

Estas en el tema de Procedimiento con fecha y opción a elegir. en el foro de Mysql en Foros del Web. Hola a todos.! Tengo la siguiente pregunta es de Procedures en SQL. Apenas llevamos una semana y la verdad poco se de estos procedimientos no ...
  #1 (permalink)  
Antiguo 12/02/2014, 12:17
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Procedimiento con fecha y opción a elegir.

Hola a todos.!

Tengo la siguiente pregunta es de Procedures en SQL.
Apenas llevamos una semana y la verdad poco se de estos procedimientos no se plantear correctamente esta pregunta para darle una respuesta.

ES:
Código:
Crea un proced llamado dietario que dada una fecha y una opción nos
aparezcan todos los eventos de:
-Si la opción A los eventos del mismo día de la fecha.
-Si la opc B eventos de la semana en que pertenece la fecha.
-Si la opc C los acontecimientos del mes a q pertenece la fecha.
Yo lo estoy intentando así pero no se la verdad que poner en el CASE. :

Código SQL:
Ver original
  1. delimiter $
  2.  
  3. CREATE PROCEDURE proc11 (IN fecha1 DATE , IN letra VARCHAR(1))
  4. BEGIN
  5.     CASE letra
  6.         WHEN (Fecha = fecha1) THEN
  7.             SELECT d.Evento
  8.             FROM Diario d
  9.             WHERE d.Fecha = fecha1 ;
  10.    
  11.     END CASE ;
  12. END $


Si me pueden ayudar lo agradezco.
Un saludo a esta magnífica comunidad.!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #2 (permalink)  
Antiguo 12/02/2014, 12:35
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, 4 meses
Puntos: 2658
Respuesta: Procedimiento con fecha y opción a elegir.

Aprovecha las funciones de fecha:
Código MySQL:
Ver original
  1. CASE letra
  2.    WHEN 'A' THEN
  3.        SELECT d.Evento
  4.        FROM Diario d
  5.        WHERE d.Fecha = fecha1;
  6.    WHEN 'B' THEN
  7.        SELECT d.Evento
  8.        FROM Diario d
  9.        WHERE
  10.             YEAR(d.Fecha) YEAR(= fecha1)
  11.             AND WEEKOFYEAR(d.Fecha) WEEKOFYEAR(= fecha1);
  12.    WHEN 'C' THEN
  13.        SELECT d.Evento
  14.        FROM Diario d
  15.        WHERE
  16.             YEAR(d.Fecha) = YEAR(fecha1)
  17.             AND MONTH(d.Fecha) = MONTH( fecha1);
  18.     ELSE
  19.        SELECT 'Sin Evento' Evento

http://dev.mysql.com/doc/refman/5.0/es/functions.html
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/02/2014, 12:51
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Respuesta: Procedimiento con fecha y opción a elegir.

Muchísimas gracias... jm la verdad es que apenas empezamos hace nada con los procedimientos y no hemos ni dado una forma mas avanzada (usando las funciones para fecha).

La verdad solo hemos echo IFs, CASE y algún WHILE.

Me mirare estas funciones, por lo que veo hay una especifica para el dia mes y año, muchas gracias por la respuesta, la practicaré un saludo.

Y una pregunta el YEAR(d.Fecha) = YEAR(fecha1) veo que lo pones en varios sitios, esto es como hacer un JOIN o para que sirve , y creo que en la línea 10 hay un fallo con el = fecha1, lo probaré el código e intentare entenderlo un poco más.

Y muchas gracias por tu ayuda.! .

EDITO: YO ejecuto esto en el PHPMYADMIN pero me da fallo de sintaxis.
El error que me tira es:
Cita:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'YEAR( = fecha1) AND WEEKOFYEAR(d.Fecha) WEEKOFYEAR(= fecha1); WHEN 'C' THE' at line 12
Mi código es este.

Código MySQL:
Ver original
  1. delimiter $
  2.  
  3. CREATE PROCEDURE proc11 (IN fecha1 DATE , IN letra VARCHAR(1))
  4.     case letra
  5.         WHEN 'A'THEN
  6.             SELECT d.Evento
  7.             FROM Diario d
  8.             WHERE d.Fecha = fecha1 ;
  9.         when 'B' THEN
  10.             SELECT d.Evento
  11.             FROM Diario d
  12.             WHERE
  13.                 YEAR(d.Fecha) YEAR( = fecha1)
  14.                 AND WEEKOFYEAR(d.Fecha) WEEKOFYEAR(= fecha1);
  15.         WHEN 'C' THEN
  16.             SELECT d.Evento
  17.             FROM Diario d
  18.             WHERE
  19.                 YEAR(d.Fecha) = YEAR(fecha1)
  20.                 AND MONTH(d.Fecha) =MONTH( fecha1);
  21.         ELSE
  22.             SELECT 'Sin evento' Evento ;
  23.     END CASE ;
  24. end $

La comilla del final creo que va ahí. El error no lo veo... apenas empezando con esta sintaxis :( .

La comilla es esta:

SELECT 'Sin evento' Evento ;
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1

Última edición por HackID1; 12/02/2014 a las 13:07

Etiquetas: fecha, procedimiento, select, sql
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 22:49.