Ho una tabella da cui voglio ottenere i dati in alcune condizioni. Sto ottenendo i dati con la query sottostante.Come convertire più righe in una riga con più colonne utilizzando Pivot in SQL Server quando i dati hanno valori NULL
SELECT track,
ytd,
weekno,
[unit]
FROM SMIrawdataFinal
WHERE unit IS NOT NULL AND tracktype='focus' AND track='A' AND ytd IS NOT NULL
La tabella originale (dati) è come di seguito.
track ytd weekno unit
A (Blank) 1 1
A (Blank) 2 2
A (Blank) 3 3
A 19 5 5
A (Blank) 4 4
Ho ottenuto i dati sotto utilizzando PIVOT in SQL Server. Il mio problema è come posso rimuovere valori nulli e ottenere gli stessi dati in una singola riga.
autoId track ytd col4 col3 col2 col1
-------------------------------------------------
1 A (Blank) NULL 4 3 2
2 A 19 5 NULL NULL NULL
Qui di seguito è la mia query SQL:
SELECT *
FROM (
SELECT track,ytd,weekno,[unit]
FROM SMIrawdataFinal
WHERE album = 'XYZ'
AND unit IS NOT NULL
AND tracktype='focus'
AND track='A'
AND ytd IS NOT NULL
) as s
PIVOT(
SUM(unit)
FOR weekno in ([5],[4],[3],[2])
)AS pivot1
Che cosa usi? SQL Server O MySQL? Hai entrambi i tag! A causa del tuo codice mi aspetterei che tu eseguissi un server SQL. – Ionic
(Vuoto) intendi ''''? –
Da dove proviene "autoId"? Sarebbero su una riga, se fossero gli stessi probabilmente .. EDIT: Se ytd è una volta (vuoto) e un'altra volta "19" potrebbe essere corretto tornare con due righe ... – Shnugo