SQL - AYUDA URGENTE POR FAVOR

 
Vista:
sin imagen de perfil

AYUDA URGENTE POR FAVOR

Publicado por Nico Monzon (12 intervenciones) el 14/02/2017 15:29:38
Hola a tod@s, estoy realizando una consulta con sql, la consulta es la siguientE, TABLA DE CLIENTES:

select alerta,nombre from client01

================ ============OBTENGO LO SIGUIENTE=================================

ALERTA SOLICITAR LA OBRA

NOMBRE CLIENTE: JESUS PEREZ



ALERTA: SOLICITAR VALE

NOMBRE: ANTONIO PEREZ


====================================QUE NECESITO=================================

NECESITO REEMPLAZAR TODO EL TEXTO DEL CAMPO ALERTA BIEN QUE ME MUESTRE LA PALABRA 'OBRA' O UN NUMERO '1', YA LO HE INTENTADO CON REPLACE EN SQL PERO SOLO ME PERMITE CAMBIAR UNA PALABRA DEL CAMPO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

AYUDA URGENTE POR FAVOR

Publicado por leonardo_josue (1173 intervenciones) el 14/02/2017 15:50:51
Hola Nico Monzon:

No entiendo muy bien qué es lo que quieres hacer, pero veamos si esto es lo que necesitas...

Según lo que pones de ejemplo, en tu tabla tienes los siguientes datos:

1
2
3
4
5
6
7
8
9
SELECT alerta,nombre FROM client01
 
+------------------+-------------+
|ALERTA            | NOMBRE      |
+------------------+-------------+
|SOLICITAR LA OBRA |JESUS PEREZ  |
+--------------------------------+
|SOLICITAR VALE    |ANTONIO PEREZ|
+------------------+-------------+

Si lo que necesitas es CAMBIAR TODA LA ALERTA, PARA TODOS LOS REGISTROS, lo puedes poner como una constante, es decir, hacer algo así:

1
2
3
4
5
6
7
8
9
SELECT 'OBRA' alerta, nombre FROM client01
 
+------+-------------+
|ALERTA| NOMBRE      |
+------+-------------+
|OBRA  |JESUS PEREZ  |
+------+-------------+
|OBRA  |ANTONIO PEREZ|
+------+-------------+

Ahora bien, si el reemplazo debe ser SELECTIVO, es decir, sólo en algunos de los casos, debes tratar de explicarte mejor, porque no se entiende.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

AYUDA URGENTE POR FAVOR

Publicado por Nico monzon (12 intervenciones) el 14/02/2017 16:59:52
Casi me das la solucion, esa es la idea, pero lo qie necesito ahora es que me muestre ese dato solo en el caso de que el.campo contenga informacion, perdonen, estoy empezando y si logro hacer esto me van a sacar de un gran apuro.. muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 29
Ha disminuido su posición en 4 puestos en SQL (en relación al último mes)
Gráfica de SQL

AYUDA URGENTE POR FAVOR

Publicado por Yamil Bracho (16 intervenciones) el 14/02/2017 15:51:39
Creo que cuando dices "sql" te refieres a Sql Server, si es asi tendrias algo como :

SELECT
(IIF( CHARINDEX( 'OBRA', alerta) > 0, 'obra', '1')) AS result
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

AYUDA URGENTE POR FAVOR

Publicado por Nico monzon (12 intervenciones) el 14/02/2017 17:00:23
Hola..no me sirvio..me da un error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

AYUDA URGENTE POR FAVOR

Publicado por leonardo_josue (1173 intervenciones) el 14/02/2017 17:41:40
Hola de nuevo Nico:

Siempre es mejor que trates de explicarte lo más posible, no tienes por qué dejar tus comentarios en sólo dos líneas de texto, más aun si apenas estás empezando con esto. Entre más detalles nos puedas dar más factible será que podamos ayudarte. Es importante también que al inicio de tus post's nos digas con qué motor de BD's estás trabajando, ya que todos los DBMS manejan una sintaxis distinta.

Ahora bien, con respecto a la consulta que te dio Yamil, dices que te da un error pero ¿cuál es ese error? eso sólo Dios y tú lo saben porque lamentablemente en este foro no hay adivinos. Postea siempre el mensaje de error que te arroja el DBMS, así podemos tener los fundamentos para darte otra respuesta.

Volviendo a tu problema, ¿a qué te refieres con que el campo no tenga información? Esta es una condición que no mencionas al inicio, por lo tanto (y volviendo al punto de que no somos adivinos) no se ha considerado. Cuando coloques datos de ejemplo, trata de colocar todos los casos que se puedan presentar. Para el ejemplo, voy a suponer que tienes una tabla así:

1
2
3
4
5
6
7
8
9
10
11
SELECT alerta,nombre FROM client01
 
+------------------+-------------+
|ALERTA            | NOMBRE      |
+------------------+-------------+
|SOLICITAR LA OBRA |JESUS PEREZ  |
+------------------|-------------+
|                  |LEONARDO     |
+------------------+-------------+
|SOLICITAR VALE    |ANTONIO PEREZ|
+------------------+-------------+

En el caso del segundo registro, suponiendo que tenga un valor NULL, entonces puedes hacer algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
   CASE WHEN alerta IS NOT NULL THEN 'obra' ELSE null END alerta,
   nombre
FROM client01
 
+------+-------------+
|ALERTA| NOMBRE      |
+------+-------------+
|OBRA  |JESUS PEREZ  |
+------+-------------+
|      |LEONARDO     |
+------+-------------+
|OBRA  |ANTONIO PEREZ|
+------+-------------+

Mucho ojo, no es lo mismo NULL a una cadena vacía o un espacio en blanco, dependerá del tipo de información que tengas en tu tabla.

Finalmente, cuando incluyas datos o consultas, utiliza las herramientas que te da el foro para darle formato y "limpieza" a lo que escribas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

AYUDA URGENTE POR FAVOR

Publicado por Nico Monzon (1 intervención) el 14/02/2017 19:15:06
Hola de nuevo, perdona por no ser mas concreto, te paso la consulta completa que estoy creando:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
select REPLACE(GLIN_FECHA,'/','/') AS FECHA,AIDA_NOMBRE AS "NOMBRE ALMACEN",GLIN_N_FAC AS "ALBARAN",GLIN_CLIENTE AS "COD CLIENTE",MCL_NOMBRE AS "NOMBRE CLIENTE",
((SELECT sum((((lin_uni * lin_p_venta) - (lin_uni* lin_p_venta) *(lin_descuento_t /100)) * (lin_iva_v/100))+
((lin_uni * lin_p_venta) - (lin_uni* lin_p_venta) *(lin_descuento_t /100)))from linfac where glin_n_fac = lin_n_fac ))-
((SELECT sum((((lin_uni * lin_p_venta) - (lin_uni* lin_p_venta) *(lin_descuento_t /100)) * (lin_iva_v/100))+
((lin_uni * lin_p_venta) - (lin_uni* lin_p_venta) *(lin_descuento_t /100)))from linfac where glin_n_fac = lin_n_fac ) *(MCL_DTO_P_P/100))AS NETO,
 
NVL('',' ') AS RECIBIDO,NVL('',' ' )AS REPARTO,NVL('',' ' ) AS INCIDENCIA,FORP_NOMBRE AS "FORMA PAGO",GLIN_USUARIO AS "OPERARIO",
NVL(MCL_ALERTA, 0) AS "OBRA EN FICHA CLIENTE",
NVL(MCL_ALERTA, 0) AS "OBRA EN FICHA CLIENTE",
NVL(GLIN_OBRA, 0) AS "OBRA ALBARAN",
NVL(MCL_ALERTA,0) AS "VALE  EN FICHA CLIENTE",
NVL(GLIN_PEDIDO, 0) as "VALE ALBARAN",
 
VEN_NOMBRE AS "NOMBRE VENDEDOR"
 
from glinfac
JOIN CLIENT01 ON MCL_N_CLIENTE =GLIN_CLIENTE
JOIN VENDEDOR ON VEN_CODIGO = GLIN_VENDEDOR
JOIN formapag ON FORP_CODIGO = glin_con_cred
JOIN AIDA ON AIDA_CODIGO = GLIN_ALMA
where glin_fecha between '08/02/2017' and '08/02/2017' AND GLIN_ALMA = 7
and glin_con_cred not in(11,12)
AND GLIN_N_FAC  not like '5170%'
order BY glin_N_FAC;

Y ESTE ES EL RESULTADO

+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+
fecha | almacen | albaran | cod cliente | nombre cliente | neto | recibido | reparto | incidencia | forma pago | operario | obra ficha | obra en albaran | vale en ficha | vale en albaran

+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------+------+-------------

08/02/17 |SANTA URSULA | 217301290 | 430012401 |TEIDEGAS, S.L. |33,496905 |RECIBO 85 D/FF. | MPadron | OBLIGATORIO PONER OBRA ( si no está creada hay que crearla) OBLIGATORIO PONER OBRA ( si no está creada hay que crearla) | 0 | OBLIGATORIO PONER VALE | 0 | VENTAS ALMACEN

LO QUE NECESITO ES QUE EN LOS CAMPOS OBRA EN FICHA DE CLIENTE ME REEMPLAZE TODAS LAS CELDAS QUE CONTENGAN LA PALABRA SOLICITAR OBRA POR LA PALABRA PONER OBRA Y EN EL CAMPO VALE EN FICHA REEMPLAZAR TODOS LOS QUE CONTENGAN VALE POR LA PALABRA PONER VALE

ESPERO HABERME EXPLICADO BIEN Y PEDONEN LAS MOLESTIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

AYUDA URGENTE POR FAVOR

Publicado por Nico Monzon (12 intervenciones) el 15/02/2017 22:20:19
ya estça solucionado, ya pueden cerrar este post.


Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar