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

DUDA SQL Función Básica

Estas en el tema de DUDA SQL Función Básica en el foro de SQL Server en Foros del Web. Hola muchachos hace años que no uso el sql y lo necesito para crear una función almacenada que dado los código de tres empleados determine ...
  #1 (permalink)  
Antiguo 12/11/2013, 17:53
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Pregunta DUDA SQL Función Básica

Hola muchachos hace años que no uso el sql y lo necesito para crear una función almacenada que dado los código de tres empleados determine el empleado que más gana y retorne su código y salario. El mismo que deberá ser impreso a través de un bloque no nominado utilizando CASE



La impresión deberia ser similar a:



De los empleados de códigos: 101, 105, 109
El empleado 105 es quién más gana y su salario es de 1700

Gracias tengo esto apenas :/
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION fn106(n n1 NUMBER, n2 NUMBER, n3 NUMBER ,v_empno emp.empno%TYPE) RETURN varchar2 IS
  2. v_msg varchar2(40);
  3.  v_sal emp.sal%TYPE;
  4. mayor NUMBER := 0;
  5.  
  6.  BEGIN
  7.   SELECT sal INTO v_sal FROM emp WHERE empno = v_empno;  
  8.  
  9. CASE  
  10.     WHEN (v_sal > 0 AND v_sal <= ) THEN  
  11.          v_msg := 'v_sal';  
  12.   WHEN (v_sal > 2500 AND v_sal <= 4000) THEN
  13.           v_msg := 'Salario Regular';
  14.   WHEN (v_sal > 4000) THEN  
  15.          v_msg := 'Salario Bueno';
  16.   ELSE    v_msg := 'Caso Desconocido';  END CASE;
  17.  
  18.   v_msg := to_char(v_sal) || ' - ' || v_msg;
  19.   RETURN v_msg;
  20. END;

Última edición por gnzsoloyo; 12/11/2013 a las 19:01
  #2 (permalink)  
Antiguo 12/11/2013, 17:56
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: DUDA SQL Función Básica

a ver puedes poner un ejemplo de tus datos? y como seria el case solo retornar el usuario con mayor salario?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/11/2013, 18:02
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: DUDA SQL Función Básica

Si básicamente debe retornar :
"De los empleados de códigos: 101, 105, 109
El empleado 105 es quién más gana y su salario es de 1700"

El problema es q es una funciona almacenada osea ingreso los códigos por parámetros. el salarios despliega según el código.
  #4 (permalink)  
Antiguo 12/11/2013, 18:48
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: DUDA SQL Función Básica

si es eso con un

Código SQL:
Ver original
  1. SELECT usuario, sueldo FROM tabla WHERE sueldo + usuario=(SELECT MAX(sueldo) + usuario FROM tabla)
saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por gnzsoloyo; 12/11/2013 a las 19:01
  #5 (permalink)  
Antiguo 13/11/2013, 12:22
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: DUDA SQL Función Básica

Cita:
Iniciado por Libras Ver Mensaje
si es eso con un

Código SQL:
Ver original
  1. SELECT usuario, sueldo FROM tabla WHERE sueldo + usuario=(SELECT MAX(sueldo) + usuario FROM tabla)
saludos!
Libras podes explicarme en el where que funcion cumple el + con el =??

SELECT usuario, sueldo FROM tabla WHERE sueldo + usuario=(SELECT max(sueldo) + usuario FROM tabla)

Estas concatenando ambos valores? parecen de tipos de datos diferentes.

Espero aclaraciones

Saludos

damimg
  #6 (permalink)  
Antiguo 13/11/2013, 12:23
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: DUDA SQL Función Básica

es una concatenacion deberia de llevar el convert(blablabla) pero no quise ponerlo en el contexto

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 13/11/2013, 18:58
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: DUDA SQL Función Básica

Cita:
Iniciado por Libras Ver Mensaje
es una concatenacion deberia de llevar el convert(blablabla) pero no quise ponerlo en el contexto

saludos!
Podrias poner las sentencias validas sql, se que tecnicamente no te cuesta nada jaj
  #8 (permalink)  
Antiguo 14/11/2013, 08:41
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: DUDA SQL Función Básica

Cita:
Iniciado por damimg Ver Mensaje
Podrias poner las sentencias validas sql, se que tecnicamente no te cuesta nada jaj
Ya te dije que iria ahi un convert(campo,varchar(N))
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: ayuda!!, 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 23:16.