Cuestión : ¿Pregunta para agrupar datos escasos?

Hola, el

I tiene un cliente que ha venido a mí con un pedido una pregunta que nunca he intentado antes.  el

Certainly podría utilizar VBA para conseguir alrededor de hacerlo con el SQL algo fácilmente, pero él quiere una solución del SQL que el class= without que altera la estructura de su table.

Here es la disposición de la tabla: el

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

They quisiera que la pregunta hiciera salir para parecer tan: tipo del tipo 1 del

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

I podrían también escribir una cadena repugnante realmente larga de las declaraciones de IIF, pero estoy buscando algo mucho más elegante.  ¿(Allí son cerca de 30 columnas) los pensamientos del

Any?

-Torrwin
class= del

Respuesta : ¿Pregunta para agrupar datos escasos?

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 como la tabla baja con la identificación, Col1, Col2, Col3, Col4, Col5
Y dos preguntas del ayudante

q26366939:

SELECTO
Identificación,
IIF (Col1=0, falta de información, Col1) COMO Col1a,
IIF (Col2=0, falta de información, Col2) COMO Col2a,
IIF (Col3=0, falta de información, Col3) COMO Col3a,
IIF (Col4=0, falta de información, Col4) COMO Col4a,
IIF (Col5=0, falta de información, Col5) COMO Col5a
De ee26366939;

q26366939a:

SELECTO
Identificación,
nz (Col1a/Col1a, 0) como Col1b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) como Col2b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) como Col3b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) +nz (Col4a/Col4a, 0) como Col4b,
nz (Col1a/Col1a, 0) +nz (Col2a/Col2a, 0) +nz (Col3a/Col3a, 0) +nz (Col4a/Col4a, 0) +nz (Col5a/Col5a, 0) como Col5b
De q26366939;

La pregunta final se puede escribir así:

SELECTO
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))))
De ee26366939 COMO A
interno ensamblar q26366939a como B en A.ID=B.ID;
Otras soluciones  
 
programming4us programming4us