Pergunta : Pergunta para agrupar dados escassos?

Olá!, o

I tem um cliente que me venha com um pedido para uma pergunta que eu nunca tente antes.  o

Certainly eu poderia usar VBA para começ em torno de fazê-lo com SQL um pouco facilmente, mas quer uma solução que do SQL o class= without que altera a estrutura de seu table.

Here é a disposição da tabela: o

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 quer a pergunta output para olhar como assim: o tipo do

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

I poderia igualmente escrever uma corrente desagradável realmente longa de indicações de IIF, mas eu estou procurando algo muito mais elegante.  (Lá são aproximadamente 30 colunas) pensamentos do

Any?

-Torrwin
class= do

Resposta : Pergunta para agrupar dados escassos?

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:
Com o ee26366939 como a tabela baixa com identificação, Col1, Col2, Col3, Col4, Col5
E duas perguntas do ajudante

q26366939:

SELETO
Identificação,
IIF (Col1=0, zero, Col1) COMO Col1a,
IIF (Col2=0, zero, Col2) COMO Col2a,
IIF (Col3=0, zero, Col3) COMO Col3a,
IIF (Col4=0, zero, Col4) COMO Col4a,
IIF (Col5=0, zero, Col5) COMO Col5a
De ee26366939;

q26366939a:

SELETO
Identificação,
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;

A pergunta final pode ser escrita assim:

SELETO
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 juntar-se a q26366939a como B em A.ID=B.ID;
Outras soluções  
 
programming4us programming4us