Forum Discussion

Jensej's avatar
Jensej
Icon for Helper V rankHelper V
6 years ago
Solved

CASO anidado de SQL en DAX

Hola

¿Puede alguien por favor ayudar a escribir este código en DAX. He estado intentándolo durante años con el interruptor funktion pero no puedo conseguir que funcione.

DECLARE @A INT
DECLARE @B INT
DECLARE @C INT
SET @A = 10
SET @B = 20
SET @C = 30


SELECT 
CASE 
WHEN @B > @C
	THEN 
		CASE 
		WHEN @B > @A 
		THEN @B+5 
		ELSE @A+5 
	END 
ELSE 
	CASE 
	WHEN @C > @A 
	THEN @C+5 
	ELSE @A+5 
	END 
END

  • @Jensej

    Será en esta línea.

    Measure = 
    VAR _A = 10
    VAR _B = 20
    VAR _C = 30
    RETURN
    SWITCH (
        TRUE(),
        _B > _C,
        SWITCH(
            TRUE(),
            _B > _A, _B + 5,
            _A + 5
        ),
        SWITCH(
            TRUE(),
            _C > _A, _C + 5,
            _A + 5
        )
    )
  • jdbuchanan71's avatar
    jdbuchanan71
    6 years ago

    También podría hacerlo con un IF

    Measure2 = 
    VAR _A = 10
    VAR _B = 20
    VAR _C = 30
    RETURN
    IF ( _B > _C,
        IF(_B > _A, _B + 5, _A + 5),
        IF(_C > _A, _C + 5, _A + 5)
    )

4 Replies

  • @Jensej ,

    Switch ( True() ,

    condición //u otro interruptor,

    condición //u otro interruptor,

    otra condición

    )

    • Jensej's avatar
      Jensej
      Icon for Helper V rankHelper V

      ¿Así?

      Switch ( True() , B > C, Switch ( True(), B > A, B+5, A+5) , Switch ( True() C > A, C+5, A+5)

  • @Jensej

    Será en esta línea.

    Measure = 
    VAR _A = 10
    VAR _B = 20
    VAR _C = 30
    RETURN
    SWITCH (
        TRUE(),
        _B > _C,
        SWITCH(
            TRUE(),
            _B > _A, _B + 5,
            _A + 5
        ),
        SWITCH(
            TRUE(),
            _C > _A, _C + 5,
            _A + 5
        )
    )
    • jdbuchanan71's avatar
      jdbuchanan71
      Icon for Super User rankSuper User

      También podría hacerlo con un IF

      Measure2 = 
      VAR _A = 10
      VAR _B = 20
      VAR _C = 30
      RETURN
      IF ( _B > _C,
          IF(_B > _A, _B + 5, _A + 5),
          IF(_C > _A, _C + 5, _A + 5)
      )