SQL - Query para Bi Publisher 11g

 
Vista:
sin imagen de perfil

Query para Bi Publisher 11g

Publicado por Yeison Asdrubal Soto Garcia (15 intervenciones) el 23/03/2013 05:41:23
Hola Amigos de LaWebDelProgramador, tengo un Query Sql que no he podido solucionar y requiero de su ayuda, resulta que tengo dos tablas relacionadas entre si

1
2
3
4
5
6
SELECT	   "F4101"."IMDSC1" as "DescripcionProducto",
                   "F40318"."QCAMIN" as "QCAMIN",
	           "F40318"."QCAMAX" as "QCAMAX",
FROM	   "PRODDTA"."F4101" "F4101",
	           "PRODDTA"."F40318" "F40318"
WHERE    "F40318"."QCITM"="F4101"."IMITM"


Haciendo una consulta sencilla queda asi mas o menos...



- Ahora lo que quiero es que solo sean dividos entre 100 los registros de los campos QCAMIN y QCAMAX que tengan valores numericos(Deter001 y Sulfat002) y los demas que son letras, combinaciones de numeros y letras y los vacios se muestren tal y como estan sin dividirlos..

hasta ahora he logrado dividir los registros con valores numericos pero los demas no se muestran.. con algo como esto:


1
2
3
select	 "F40318"."QCAMIN"/100 as "QCAMIN"
from	"CRPDTA"."F40318" "F40318"
where    regexp_like("QCAMIN",'\d')


Osea muestra divididos los registros que contienesn numeros pero los que contienen letras y los vacios no los muestra....



Les agradezco la ayuda que me puedan brindar....
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Query para Bi Publisher 11g

Publicado por xve (284 intervenciones) el 24/03/2013 13:02:18
Hola Yeison, no se que motor de base de datos estas utilizando, pero si utilizas mysql, puedes hacerlo con un simple CASE WHEN

1
2
SELECT ...,
CASE WHEN QCAMIN+0=QCAMIN THEN QCAMIN/100 ELSE QCAMIN AS NewQCAMIN, ...


Si sumar 0 a QCAMIN da el mismo resultado, quiere decir que es numerico, entonces devuelve el valor dividido por 100, pero si no es numerico, devuelve el valor tal cual...

Coméntanos, si te sirvió, ok?
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

Query para Bi Publisher 11g

Publicado por Yeison Asdrubal (15 intervenciones) el 25/03/2013 04:02:02
Amigo gracias por responder, mira lo hice de esta manera:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
SELECT   "F40318"."QCITM" as "QCITM",
	       "F40318"."QCQTST" as "QCQTST",
		     "F40318"."QCTMHD" as "QCTMHD",
	       "F40318"."QCRSUM" as "QCRSUM",
         "F4101"."IMDSC1" as "IMDSC1",
	       "F4101"."IMLITM" as "IMLITM",
	       "F4101"."IMAITM" as "IMAITM",
 
         CASE
           WHEN regexp_like("QCPMIN",'\d+')  THEN TO_CHAR(("QCPMIN"/100))
           WHEN regexp_like("QCPMIN",'[A-Za-z]')  then TO_CHAR("QCPMIN")
 
			   ELSE '  '
         END QCPMIN,
 
         CASE
           WHEN regexp_like("QCAMIN",'\d+')  THEN TO_CHAR(("QCAMIN"/100))
           WHEN regexp_like("QCAMIN",'[A-Za-z]')  then TO_CHAR("QCAMIN")
 
			   ELSE '  '
         END QCAMIN,
 
          CASE
           WHEN regexp_like("QCAMAX",'\d+')  THEN TO_CHAR(("QCAMAX"/100))
           WHEN regexp_like("QCAMAX",'[A-Za-z]')  then TO_CHAR("QCAMAX")
 
			   ELSE '  '
         END QCAMAX,
 
          CASE
           WHEN regexp_like("QCPMAX",'\d+')  THEN TO_CHAR(("QCPMAX"/100))
           WHEN regexp_like("QCPMAX",'[A-Za-z]')  then TO_CHAR("QCPMAX")
			    ELSE '  '
         END QCPMAX
FROM   "F4101", "F40318"
WHERE   "F4101"."IMITM"="F40318"."QCITM"


Ahora solo falta probarlo en el bi publisher para ver como me va.....
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