MySQL - Case en select

 
Vista:
sin imagen de perfil
Val: 5
Ha disminuido su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Case en select

Publicado por Nayeli (3 intervenciones) el 05/04/2018 00:16:23
Hola tengo este código y necesito agregar un case, he intentado varias formas y me marca error en la sintaxis, cómo puedo hacerlo??
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
37
38
39
SELECT
	`rep_kard_mes`.`Sucursal` AS `SUCURSAL`,
	`rep_kard_mes`.`UB` AS `UB`,
	`rep_kard_mes`.`Porcentaje` AS `Porcentaje`,
	1 AS `cantidad`,
	`view_totalclasmovimiento`.`CANTIDAD` AS `total`
FROM
		(`rep_kard_mes`
		JOIN `view_totalclasmovimiento` ON (
			(
				(
					`rep_kard_mes`.`Sucursal` = `view_totalclasmovimiento`.`SUCURSAL`
				)
				AND (
					`rep_kard_mes`.`Fecha_desde` = `view_totalclasmovimiento`.`Fecha_desde`
				)
				AND (
					`rep_kard_mes`.`Fecha_Hasta` = `view_totalclasmovimiento`.`Fecha_Hasta`
				)
				AND (
					`rep_kard_mes`.`Clase_de_Movimiento` = `view_totalclasmovimiento`.`Clase_de_Movimiento`
				)
			)
		))
 
 
WHERE
	(
		(
			`rep_kard_mes`.`Clase_de_Movimiento` = 'V'
		)
		AND (
			`rep_kard_mes`.`Descripcion` NOT IN (
				'TOTAL DE VENTAS',
				'TOTAL DE COMPRAS',
				'TOTAL DE OTROS'
			)
		)
	)




este es el case que necesito agregar:
1
2
3
4
5
6
7
8
9
10
11
SELECT
	(
		CASE `view_totalclasmovimiento`.`Clase_de_Movimiento`
		WHEN 'O' THEN
			'OTROS'
		WHEN 'V' THEN
			'VENTAS'
		WHEN 'C' THEN
			'COMPRAS'
		END
	) AS `clase_de_movimiento`
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: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Case en select

Publicado por leonardo_josue (414 intervenciones) el 05/04/2018 15:03:21
Hola Nayerli:

No veo nada "raro" en tu consulta, salvo el hecho de que tienes mucha "basura" con los paréntesis, que son completamente inútiles en este caso. Prueba esta consulta que está un poco más "limpia" y dinos si funciona, si te sigue marcando error, postea exactamente el mensaje que te aparece, ya que el error puede no ser por el CASE-WHEN, sino por algo más de la consulta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT
  `rep_kard_mes`.`Sucursal` SUCURSAL,
  `rep_kard_mes`.`UB` UB,
  `rep_kard_mes`.`Porcentaje` Porcentaje,
  1 cantidad,
  `view_totalclasmovimiento`.`CANTIDAD` total,
  CASE `view_totalclasmovimiento`.`Clase_de_Movimiento`
    WHEN 'O' THEN 'OTROS'
    WHEN 'V' THEN 'VENTAS'
    WHEN 'C' THEN 'COMPRAS'
  END clase_de_movimiento
FROM
  `rep_kard_mes`
JOIN `view_totalclasmovimiento`
ON
      `rep_kard_mes`.`Sucursal`            = `view_totalclasmovimiento`.`SUCURSAL`
  AND `rep_kard_mes`.`Fecha_desde`         = `view_totalclasmovimiento`.`Fecha_desde`
  AND `rep_kard_mes`.`Fecha_Hasta`         = `view_totalclasmovimiento`.`Fecha_Hasta`
  AND `rep_kard_mes`.`Clase_de_Movimiento` = `view_totalclasmovimiento`.`Clase_de_Movimiento`
WHERE
      `rep_kard_mes`.`Clase_de_Movimiento` = 'V'
  AND `rep_kard_mes`.`Descripcion` NOT IN ('TOTAL DE VENTAS', 'TOTAL DE COMPRAS', 'TOTAL DE OTROS')

Haz la prueba y nos comentas.
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
1
Comentar
sin imagen de perfil
Val: 5
Ha disminuido su posición en 3 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Case en select

Publicado por Nayeli (3 intervenciones) el 06/04/2018 16:18:18
Era el exceso de basura lo que trababa el sistema.
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