SQL AIUTO!!!!!!!!!!!!!!!!!!!!!!!!!!

lunedì 12 luglio 2010 - 09.29

fedemagna Profilo | Newbie

ho una tabella di un db access così fatta:
nome1 | qualifica1 | nazione1 | nome2 | qualifica2 | nazione2 | .... | nome10 | qualifica10 | nazione10 |
più altri campi che non mi interessano

lo so è fatta male ma non l'ho fatta io e non posso modificarla.
devo fare una query sql che per ogni nazione mi estrae il numero di persone con una certa qualifica, il numero di persone con un altra qualifica e il totale.
Cioè la tabella finale sarà per es:

NAZIONE | nr ufficiali di macchina| nr ufficiali di coperta | nr sottoufficiali | ..... | totale nazione |
INDIA | 4 | 6 | 10 | ..... | 20 |
.
.
Se le nazioni non si trovassero sullo stesso record con nomi diversi (nazione1, nazione2, etc) potrei utilizzare group by nazione ma in questo caso non lo posso fare....
Mi aiutate?
GRAZIE!!!
Potete aiutarmi???

lbenaglia Profilo | Guru

>ho una tabella di un db access così fatta:
>nome1 | qualifica1 | nazione1 | nome2 | qualifica2 | nazione2
>| .... | nome10 | qualifica10 | nazione10 |
>più altri campi che non mi interessano
>
>lo so è fatta male ma non l'ho fatta io e non posso modificarla.
Questa tabella non rispetta nemmeno la 1NF, quindi ogni query sarà particolarmente complessa ed inefficiente.

>devo fare una query sql che per ogni nazione mi estrae il numero
>di persone con una certa qualifica, il numero di persone con
>un altra qualifica e il totale.
Utilizza l'operatore UNION ALL per "sistemare al volo" la struttura della tabella, ed esegui le aggregazioni del caso tramite outer query.
Se desideri un aiuto più preciso, posta un piccolo mdb di esempio con una manciata di righe di prova ed il result set atteso a partire da quei dati.

>GRAZIE!!!
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5