Autor Tema: ayuda con sql 2.0 (SQL2008)  (Leído 5203 veces)

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
ayuda con sql 2.0 (SQL2008)
« en: Febrero 07, 2013, 10:07:16 am »
estiamados, tengo un pequeño dolor de cabeza con SQL 2008

tengo un campo que el formato es asi 
AHO;45698741125522157 ,
uno es el tipo de cuenta y el otro es el numero de cuenta

necesito separarlos en 2 campos al realizar la consulta pero el tipo de cuenta puede ser de 0 hasta 7 caracteres y el otro entre 15 y 20 caracteres
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado KBezon

  • Experto
  • *****
  • Mensajes: 5026
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #1 en: Febrero 07, 2013, 10:41:31 am »
tienes primero que meter en una variable (pos) la posicion del ";", luego separas..

;)
NO TENGO FIRMA.

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #2 en: Febrero 07, 2013, 10:55:21 am »
no me funko.....  :'( :'( :'( :'(
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado KBezon

  • Experto
  • *****
  • Mensajes: 5026
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #3 en: Febrero 07, 2013, 10:56:33 am »
no me funko.....  :'( :'( :'( :'(

postea la query..
NO TENGO FIRMA.

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #4 en: Febrero 07, 2013, 10:57:42 am »
No caché mucho el problema, pero te sirve algo así?:
Select ...........* from.................... Where SUBSTRING(columna1, 1, 10) = ..............

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #5 en: Febrero 07, 2013, 11:01:38 am »
estimados esta es la query, los campos que necesito separar son CTA.Cpa_Numero_Cuenta, este campo posee los 2 campos que necesito

select  CTA.Cpa_Numero_Cuenta,
      CTA.cpa_numero_cuenta,
      PAR.Par_rut_Participe,
      PAR.Par_Dv,
      CUO.cue_numero_cuenta,
      CUO.Fmu_Fondo,
      SOL.sol_moneda,
      SOl.SOL_TOTAL_SOLICITUD,
      SOL.Sol_Fecha_Ingreso,
      SOl.Sol_Fecha_Pago,
      Sol.Sol_Inversion_Periodica,
      PAR.Age_Agente     
from Fmu_Cuenta_Bancaria_Participes CTA
inner join Fmu_Participes PAR
on CTA.Par_rut_Participe = par.Par_rut_Participe
inner join Fmu_Solicitudes SOl
on CTA.Par_rut_Participe = SOl.Par_rut_Participe
inner join fmu_saldo_cuotas CUO
on CTA.Par_rut_Participe = CUO.Par_rut_Participe
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #6 en: Febrero 07, 2013, 11:08:17 am »
No tienen ancho fijo??? Si no tienen un ancho fijo y están metidos en un mismo campo, lo considero un error de diseño.
Está complicado, pero no imposible, déjame darle una vuelta pero se me ocurre que podrías crear una función almacenada y ahí meter el código que necesitas.

Otra consulta: necesitas separarlos para aplicarle la condición de búsqueda? ó sólo para obtener columnas separadas? (Where).

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #7 en: Febrero 07, 2013, 11:11:44 am »
No tienen ancho fijo??? Si no tienen un ancho fijo y están metidos en un mismo campo, lo considero un error de diseño.
Está complicado, pero no imposible, déjame darle una vuelta pero se me ocurre que podrías crear una función almacenada y ahí meter el código que necesitas.

Otra consulta: necesitas separarlos para aplicarle la condición de búsqueda? ó sólo para obtener columnas separadas? (Where).

es solo para obtener columnas separadas, el primero es de largo 5 y el otro de largo 20, y si no tiene 20 caracteres se rellenan con 0 a la izquierda
ese es el resultado, es una insert select a una tabla de trabajo. lo otro que el campo que dice CCT no siempre viene informada

CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 54300015185
CCT  ; 54300015185
CCT  ; 54300015185

es parte de un SP, y aca en el banco son un poco especiales en estos casos, asi que entre mas simple la solucion mejor
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #8 en: Febrero 07, 2013, 11:26:08 am »
es solo para obtener columnas separadas, el primero es de largo 5 y el otro de largo 20, y si no tiene 20 caracteres se rellenan con 0 a la izquierda
ese es el resultado, es una insert select a una tabla de trabajo. lo otro que el campo que dice CCT no siempre viene informada

CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 64500025750
CCT  ; 54300015185
CCT  ; 54300015185
CCT  ; 54300015185

es parte de un SP, y aca en el banco son un poco especiales en estos casos, asi que entre mas simple la solucion mejor
Ah, entonces substring es lo que necesitas.

Desconectado Fredy Turbina

  • Experto
  • *****
  • Mensajes: 4076
  • Primer advertido
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #9 en: Febrero 07, 2013, 11:28:40 am »
Envíaselo al de IT para que lo arregle..... :tumtum:
"..Mi abuelo era un hombre muy valiente
solo le tenia miedo a los boludos
un dia le pregunté ¿por que? y me dijo
-porque son muchos  y no hay forma de cubrir semejante frente! por temprano
que te levantes, a donde vayas ya está
lleno de boludos y son peligrosos.
porque al ser mayoria eligen
hasta el presidente..”


Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #10 en: Febrero 07, 2013, 11:33:36 am »
Envíaselo al de IT para que lo arregle..... :tumtum:

 :tumtum: :tumtum:

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #11 en: Febrero 07, 2013, 12:13:10 pm »
Ah, entonces substring es lo que necesitas.

ya perfecto tengo una parte de la query echa, pero el problema es que si no tiene el prefijo AHO, CCT, etc, me toma los 5 primeros caracteres ya sea desde el numero de la cuenta o de los prefijos que necesito,  los 2 primeros estan incorrectos, los 2 ultimos estan bien
deberia quedar asi

Campo 1                                   campo 2
00000000000001049854             
00000000000001049854               
00000000064500025750             CCT   
00000000064500025750             CCT 

no asi
campo 1       campo 2
54                      10498 
54                      10498 
 64500025750      CCT   
 64500025750      CCT   
« Última modificación: Febrero 07, 2013, 12:15:37 pm por Mithrandir666 »
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #12 en: Febrero 07, 2013, 13:47:43 pm »
alguien????
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #13 en: Febrero 08, 2013, 07:46:40 am »
???
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #14 en: Febrero 08, 2013, 08:20:32 am »
Disculpa he estado con mucha pega. Pero tu problema claramente tiene la complicación que al no tener 2 variables en 1 solo campo, y estos no están con una nomenclatura lógica, es difícil que puedas usar funciones integradas de sql server. Creo que deberás hacer tu propia función y después llamarla desde el query. Con esto pierdes un poco de rendimiento en los query dependiendo de los procesos que necesites para obtener los campos. Para llamar a tu función deberás por algo así:

select ................, dbo.mifunción1(CTA.Cpa_Numero_Cuenta), .........* from.............

Anteponiendo el nombre del usuario propietario de la función, que en este caso es dbo.

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #15 en: Febrero 08, 2013, 08:28:55 am »
Disculpa he estado con mucha pega. Pero tu problema claramente tiene la complicación que al no tener 2 variables en 1 solo campo, y estos no están con una nomenclatura lógica, es difícil que puedas usar funciones integradas de sql server. Creo que deberás hacer tu propia función y después llamarla desde el query. Con esto pierdes un poco de rendimiento en los query dependiendo de los procesos que necesites para obtener los campos. Para llamar a tu función deberás por algo así:

select ................, dbo.mifunción1(CTA.Cpa_Numero_Cuenta), .........* from.............

Anteponiendo el nombre del usuario propietario de la función, que en este caso es dbo.

me dejaste pillo, no cacho como implementar eso  :oops: :oops: :wtf: :wtf: :wtf: :wtf: :wtf:
mmmmmmmmmmm, a seguir como mono porfiado

Desconectado negroVeloz

  • Experto
  • *****
  • Mensajes: 2900
  • CSM, Biónico, Alemán, Entendido y Facho de cuneta
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #16 en: Febrero 08, 2013, 09:22:32 am »
me dejaste pillo, no cacho como implementar eso  :oops: :oops: :wtf: :wtf: :wtf: :wtf: :wtf:
Acá tienes un ejemplo.
http://www.devtroce.com/2010/01/18/crear-e-invocar-funciones-udf-en-sql-server/

La gracia de las funciones escalares, es que puedes aplicar loops, if-else, y todo lo que quieras que está incorporado en el lenguaje almacenado.  :thumbsup:
Muy útil y fácil.

Desconectado GatoR

  • Experto
  • *****
  • Mensajes: 3424
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #17 en: Febrero 08, 2013, 11:44:23 am »
así con el xv.... :risa2: :risa2:
suerte con lo que necesitas, están hablando en chino para el común de los cristianos y moros.

Desconectado DesarrolloNet

  • Avanzado
  • ****
  • Mensajes: 2198
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #18 en: Febrero 08, 2013, 11:52:06 am »
me dejaste pillo, no cacho como implementar eso  :oops: :oops: :wtf: :wtf: :wtf: :wtf: :wtf:

pero necesitas solo una query?
o puede ser un SP???????

Desconectado Mithrandir

  • Avanzado
  • ****
  • Mensajes: 1666
Re:ayuda con sql 2.0 (SQL2008)
« Respuesta #19 en: Febrero 08, 2013, 12:18:02 pm »
pero necesitas solo una query?
o puede ser un SP???????

es una query dentro de un sp
mmmmmmmmmmm, a seguir como mono porfiado

Tags:
     


    A la memoria de Alex Feliú a.k.a Rommel