Questione : Domanda per raggruppare i dati sparsi?

Ciao, il

I ha un cliente che è venuto a me con una richiesta per una domanda che non ho tentato mai prima.  

Certainly potrei usare VBA per ottenere intorno a farlo con SQL piuttosto facilmente, ma vogliono una soluzione che di SQL il class= without che altera la struttura del loro table.

Here è la disposizione della tabella: il
1 0 del

ID Column1 Column2 Column3 Column4 Column5… ecc… 0 5 0 0
2 7 0 0 2 0
3 1 2 3 0

They di 0
… ecc… vuole la domanda produrre per assomigliare a così: tipo di tipo 1 del

ID - 2 Type3
1 5 0 0
2 7 2 0
3 1 2 3

I potrebbero anche scrivere una cattiva catena realmente lunga delle dichiarazioni di IIF, ma sto cercando qualcosa molto più elegante.  (Là sono circa 30 colonne) pensieri del

Any?

-Torrwin
class= del

Risposta : Domanda per raggruppare i dati sparsi?

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:
Con ee26366939 come la tabella bassa con l'identificazione, Col1, Col2, Col3, Col4, Col5
E due domande dell'assistente

q26366939:

PRESCELTO
Identificazione,
IIF (Col1=0, posizione di segnale minimo, Col1) COME Col1a,
IIF (Col2=0, posizione di segnale minimo, Col2) COME Col2a,
IIF (Col3=0, posizione di segnale minimo, Col3) COME Col3a,
IIF (Col4=0, posizione di segnale minimo, Col4) COME Col4a,
IIF (Col5=0, posizione di segnale minimo, Col5) COME Col5a
Da ee26366939;

q26366939a:

PRESCELTO
Identificazione,
nz (Col1a/Col1a, 0) come Col1b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) come Col2b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) come Col3b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) +nz (Col4a/Col4a, 0) come Col4b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) +nz (Col4a/Col4a, 0) +nz (Col5a/Col5a, 0) come Col5b
Da q26366939;

La domanda finale può essere scritta così:

PRESCELTO
A.ID,
IIF (Col1B=1, Col1, IIF (Col2b=1, Col2, IIF (Col3b=1, Col3, IIF (Col4b=1, Col4, Col5)))),
IIF (Col1B=2, Col1, IIF (Col2b=2, Col2, IIF (Col3b=2, Col3, IIF (Col4b=2, Col4, Col5)))),
IIF (Col1B=3, Col1, IIF (Col2b=3, Col2, IIF (Col3b=3, Col3, IIF (Col4b=3, Col4, Col5)))),
IIF (Col1B=4, Col1, IIF (Col2b=4, Col2, IIF (Col3b=4, Col3, IIF (Col4b=4, Col4, Col5)))),
IIF (Col1B=5, Col1, IIF (Col2b=5, Col2, IIF (Col3b=5, Col3, IIF (Col4b=5, Col4, Col5))))
Da ee26366939 COME A
interno unire q26366939a come B su A.ID=B.ID;
Altre soluzioni  
 
programming4us programming4us