cancel
Showing results for 
Search instead for 
Did you mean: 

Case en Consulta

Former Member
0 Kudos

Buenas Tardes Estimados,

   A ver si me pueden ayudar con lo siguiente por favor, tengo la siguiente consulta:

SELECT CASE WHEN($[OITM.U_PX_TipoDeProducto] = 'PT') THEN(

SELECT t1.U_PX_Prefijo+ '' +(SELECT T2.[Code] FROM [dbo].[@PX_MARCA] T2 WHERE T2.[Name] = T1.[U_PX_Marca])+ '' +(SELECT T4.[Code] FROM [dbo].[@PX_MODELO] T4 WHERE T4.[Name] = T1.[U_PX_Modelo])+ '' +(SELECT T5.[Code] FROM [dbo].[@PX_COLOR] T5 WHERE T5.[Name] = T1.[U_PX_Color])+ '' +(SELECT T6.[Code] FROM [dbo].[@PX_SERIE] T6 WHERE T6.[Name] = T1.[U_PX_Serie])+ '' +(SELECT T7.[Code] FROM [dbo].[@PX_CURVA] T7 WHERE T7.[Name] = T1.[U_PX_Curva])

FROM OITM T1 WHERE T1.ItemCode = $[$5.0.0] ) ELSE $[OITM.ItemCode] END

El query lo que haces es lo siguiente, cuando se completa una serie de datos, automaticamente se crea el codigo del articulo, pero siempre y cuando selecciones la opcion del campo U_PX_TipoDeProducto = 'PT', eso lo esta haciendo actualmente el sistema sin problema, pero pasa que el campo U_PX_TipoDeProducto tambien tiene otra opcion que DS, yo quisiera que cuando el usuario escoja DS tambien se cree automatico el codigo del articulo, la cuestion es que para el caso de los DS son menos los campos que se completan en el maestro de articulos, mientras que para PT se selecciona todo lo que se ve en el Query. Imagino que es otro CASE que se agrega en el query pero no se como agregarlo.

Gracias y saludos.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Ayudaron nuestras respuestas, Miguel?

Saludos,

felipe_loyolarodriguez
Active Contributor
0 Kudos

Y si lo haces con un IF

Ejemplo

If campo = 'PT'

select ....

if campo = 'DS'

select....

Saludos

Former Member
0 Kudos
Intento esto:
Agrega un WHEN - THEN por cada nomenclatura que le quieras dar a tu codigo de artículo a cada valor de TipodeProducto. Algo así:

SELECT CASE

-- Cuando el Tipo de producto es PT

WHEN($[OITM.U_PX_TipoDeProducto] = 'PT') THEN (

SELECT t1.U_PX_Prefijo+ '' +

(SELECT T2.[Code] FROM [dbo].[@PX_MARCA] T2 WHERE T2.[Name] = T1.[U_PX_Marca])+ '' +

(SELECT T4.[Code] FROM [dbo].[@PX_MODELO] T4 WHERE T4.[Name] = T1.[U_PX_Modelo])+ '' +

(SELECT T5.[Code] FROM [dbo].[@PX_COLOR] T5 WHERE T5.[Name] = T1.[U_PX_Color])+ '' +

(SELECT T6.[Code] FROM [dbo].[@PX_SERIE] T6 WHERE T6.[Name] = T1.[U_PX_Serie])+ '' +

(SELECT T7.[Code] FROM [dbo].[@PX_CURVA] T7 WHERE T7.[Name] = T1.[U_PX_Curva])

FROM OITM T1 WHERE T1.ItemCode = $[$5.0.0] )

-- Cuando el Tipo de producto es DS

WHEN($[OITM.U_PX_TipoDeProducto] = 'DS') THEN (

SELECT t1.U_PX_Prefijo+ '' +

(campo1)+ '' +

(campo2)+ '' +

(campo3)+ '' +

(campoN)+ '' +

FROM OITM T1 WHERE T1.ItemCode = $[$5.0.0] )

ELSE $[OITM.ItemCode]

END

Saludos

JC