es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL Server, tabla temporal, SELECT statement no funciona.

Estoy tratando de ejecutar una consulta en Azure Data Studio desde una tabla temporal que he creado. Sin embargo, en mi sentencia SELECT, no reconoce el nombre de columna(s). Los nombres de las columnas en la sentencia SELECT (es decir, FirstPlayer, SecondPlayer, Score) están subrayados en rojo y la consulta aparece como no válida.

¿Alguna idea de cómo cambiar la sintaxis para que funcione?

SI OBJECT_ID (‘tempdb.dbo.#GameScores’, ‘U’) NO ES NULO
ELIMINAR TABLA #GameScores;
IR

CREAR TABLA #GameScores
(
FirstPlayer VARCHAR(10),
SecondPlayer VARCHAR(10),
Score INTEGER
);
IR

INSERTAR EN #GameScores
VALORES (‘Joe’,’Ryan’, 120),
(‘Sue’, ‘Jackie’, 200),
(‘Ryan’, ‘Sue’, 50),
(‘Ryan’, ‘Joe’, 100);
IR

SELECCIONAR DISTINCTO
FirstPlayer,
SecondPlayer,
SI(Puntuación = MAX(Puntuación), MAX(Puntuación) + 20, Puntuación) COMO Puntuación
DE
#GameScores
DONDE
SecondPlayer NO COMO “JO%”
O Puntos <> 100

Tags:  , ,

Answer

  1. Avatar for davy.ai

    AGRUPAR POR
    FirstPlayer,
    SecondPlayer,
    Score;
    IR

    Parece que te falta la cláusula GROUP BY en tu declaración SELECT. La cláusula GROUP BY se utiliza para agrupar los resultados de la consulta por uno o más columnas. En este caso, necesitas agrupar los resultados por las columnas de FirstPlayer, SecondPlayer y Score.

    Intenta ejecutar la siguiente consulta:

    SELECT DISTINCT 
        FirstPlayer,
        SecondPlayer, 
        IF(Score = MAX(Score), MAX(Score) + 20, Score) AS Score
    FROM 
        #GameScores
    WHERE 
        SecondPlayer NOT LIKE "JO%"
        OR Points <> 100
    GROUP BY 
        FirstPlayer, 
        SecondPlayer, 
        Score;
    

Comments are closed.