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

Traducir sentencia de Oracle a SQL Server

Estas en el tema de Traducir sentencia de Oracle a SQL Server en el foro de SQL Server en Foros del Web. Hola estimados, q tal? Tengo una sentencia en Oracle que lo q hace es crear una vista para agrupar los registros, y necesito traducirla al ...
  #1 (permalink)  
Antiguo 28/11/2005, 08:57
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta Traducir sentencia de Oracle a SQL Server

Hola estimados, q tal?

Tengo una sentencia en Oracle que lo q hace es crear una vista para agrupar los registros, y necesito traducirla al SQL server...el problema es q no entiendo muy bien que hace la sentencia DECODE en oracle....
esta es la sentencia:

CREATE OR REPLACE VIEW V_CLIENTE_LLAMADO
(SERVICIO, RUT_CLIENTE1, CUENTA)
AS
select
decode(n.NMRO_EVENTO1,'106','TV','107','FONO','108 ','INTERNET','109','VISITAS')
SERVICIO,n.RUT_CLIENTE1,count(*) cuenta
from IVT_LOGSIVR_prueba n
having count(*) >= 2
group by n.NMRO_EVENTO1,n.RUT_CLIENTE1;


alguna ayuda?

gracias de antemano, salu2.-
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
  #2 (permalink)  
Antiguo 28/11/2005, 10:28
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
CREATE VIEW V_CLIENTE_LLAMADO
(SERVICIO, RUT_CLIENTE1, CUENTA)
AS
select
case c.NMRO_EVENTO1
when '106' then 'TV'
when '107' then 'FONO'
when '108' then 'INTERNET'
when '109' then 'VISITAS'
else 'NADA'
end SERVICIO,
n.RUT_CLIENTE1,count(*) cuenta
from IVT_LOGSIVR_prueba n
having count(*) >= 2
group by n.NMRO_EVENTO1,n.RUT_CLIENTE1;
  #3 (permalink)  
Antiguo 28/11/2005, 15:05
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
Gracias Monkyta, de nuevo me salvaste... pero tengo un problema:
me tira el siguiente error:

sintaxis incorrecta cerca de la palabra clave "GROUP"

y reconozco q apenas entiendo la sentencia.... donde podría sacar información mas avanzada de sql server y sus vistas?

gracias, salu2.-
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
  #4 (permalink)  
Antiguo 28/11/2005, 17:35
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Prueba eliminando el punto y coma (;) del final
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 29/11/2005, 07:48
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
Hola Mithrandir, intenté sacandole el ; pero me da el mismo error. Pero a lo mejor si me explico mejor me pueden hechar una manito:

Tengo una tabla con 10 campos, entre ellos rut_cliente1 y nmro_evento1.
nmro_evento1 puede tener los siguientes valores:

106 -Tranferencia TV
107 -Tranferencia FONO
108 -Tranferencia INTERNET
109 -Tranferencia VISITAS PENDIENTES

aparte de rescatar estos dos campos, necesito contar la cantidad de veces que cada rut se relaciona con cada evento (por ejemplo, el rut 11.111.111-1 aparece en los registros 3 veces relacionado con el evento 106), si el rut se relaciona 2 o más veces con cualquier evento debo traer la cantidad de veces q se relaciono con este y con q tipo de evento fue.

Un ejemplo de como se tiene q ver:
Código PHP:


servicio         rut cliente        llamadas
cable          11.111.111
-1         3
fono           22.222.222
-2         2
internet      11.111.111
-1         4
etc
.... 
se que se tiene q ocupar el count...pero no se exactamente como hacer eso de q aparezca la cantidad de llamadas de un rut a cada servicio. y esto debo hacerlo en una vista.
alguno de ustedes me puede orientar acerca de como debo plantearme la consulta?

gracia a ambos, salu2.-
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
  #6 (permalink)  
Antiguo 29/11/2005, 08:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Dorita no me habia fijado que el group by estaba mal ubicado... prueba esto

CREATE VIEW V_CLIENTE_LLAMADO
(SERVICIO, RUT_CLIENTE1, CUENTA)
AS
select
case c.NMRO_EVENTO1
when '106' then 'TV'
when '107' then 'FONO'
when '108' then 'INTERNET'
when '109' then 'VISITAS'
else 'NADA'
end SERVICIO,
n.RUT_CLIENTE1,count(*) cuenta
from IVT_LOGSIVR_prueba n
group by n.NMRO_EVENTO1,n.RUT_CLIENTE1
having count(*) >= 2
  #7 (permalink)  
Antiguo 29/11/2005, 08:19
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
Ahora si Monkyta, muchas gracias por tu ayuda, y a Mithrandir también,
salu2 a los dos,
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
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 02:47.