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 PIVOT no como se sospechaba.

Estoy trabajando en una extracción de datos de varias tablas y hasta ahora tengo esto.

Tabla A

ID valor
1 123

Tabla B

ID FileID FieldID A_ID Datos
1 1 1 1 abc
2 1 2 1 123
3 1 3 1 TRUE
4 1 1 2 def
5 1 2 2 456
6 1 3 2 FALSE

Hasta ahora tengo

SELECT Id, valor, [1] as campo1, [2] as campo2, [3] as campo3 FROM 
   (SELECT A.Id, A.valor , B.Datos as valorDatos, B.Id as idDatos
    FROM TablaA A, TablaB B 
    WHERE A.Id = B.A_ID) as P

PIVOT (MAX(idDatos) FOR valorDatos in ([1],[2],[3])) as PVT

La respuesta que espero es

Id Valor Campo1 Campo2 Campo3
1 123 abc 123 TRUE

La respuesta que obtengo es

Id Valor Campo1 Campo2 Campo3
1 123 NULL NULL NULL

¿Qué me falta?

No puedo resolverlo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que la consulta de pivote no puede encontrar ningún valor para la columna “datavalue” en la subconsulta de entrada, lo que resulta en valores NULL en la salida.

    Una posible razón para esto podría ser que haya valores adicionales para la columna “datavalue” en la tabla B que no están presentes en la consulta de pivote. Para confirmar esto, puedes intentar ejecutar la siguiente consulta para ver todos los valores distintos de “datavalue” en la tabla B:

    SELECT DISTINCT Data as datavalue FROM TableB
    

    Si hay valores que no están incluidos en la consulta de pivote, deberás ajustarla para incluir también esos valores.

    Otra posibilidad es que pueda haber algunas inconsistencias de datos o valores NULL en las tablas de entrada que están causando que el pivote falle. Puedes intentar ejecutar algunas consultas adicionales para aislar el problema, como verificar si hay valores NULL en la tabla B o verificar que todos los valores de “A_ID” en la tabla B tengan un valor “ID” correspondiente en la tabla A.

    En general, puede requerir un poco de solución de problemas adicional y posiblemente ajustar los datos de entrada o la consulta de pivote para obtener la salida deseada.

Comments are closed.