Query sulla stessa tabella

giovedì 16 gennaio 2014 - 16.30

tigre Profilo | Junior Member

Ho una tabella cosi:
codice_fiscale - periodo - importo
1 gen/2011 20.00
1 feb/2011 30.00
e vorrei creare una query in orizzontale cosi:
codice_fiscale - genn/2011 - febb/2011
1 20,00 30.00

è possibile???

iif Profilo | Expert

Crei una tabella temporanea e metti i dati come vuoi.
Quando hai finito di utilizzarli elimini la tabella.

tigre Profilo | Junior Member

e come???

iif Profilo | Expert

1) Apri la connessione
2) Crei la tabella - Create table bla bla bla
3) Accodi i dati

tigre Profilo | Junior Member

forse ho scritto male.
I dati che ho sono gia accodati.
io li vorrei riepilogare in orizzontale.-
per la stessa persona cosi:
cod 11/2013--12/2013
2--------20----- 25

iif Profilo | Expert

Sicuramente li hai accodati in verticale, come logica vuole.
Se vuoi vederli in orizzontale devi crearti una tabella temporanea e scriverci dentro.

HolidaySoft.it Profilo | Junior Member

Ipotizzando la tabella così:

COD_FISC MESE IMP 1 201101 20 1 201102 50 1 201101 10

dovresti utilizzare un sql tipo questo:

select cod_fisc, sum(m201101), sum(m201102) from (
select cod_fisc,
case when mese=201101 then imp else 0 end as m201101,
case when mese=201102 then imp else 0 end as m201102
from (
select cod_fisc, mese, imp from tabellaimporti
)
)
group by cod_fisc

ovviamente, cambiando opportunamente i valori e il nome dei campi

Ciao
Mik
http://www.HolidaySoft.it
http://www.GarganoSapori.it - Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it - Crea la Vetrina per il tuo Ristorante

HolidaySoft.it Profilo | Junior Member

Ciao,
hai provato la mia soluzione??

Facci sapere
Mik
http://www.HolidaySoft.it
http://www.GarganoSapori.it - Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it - Crea la Vetrina per il tuo Ristorante

tigre Profilo | Junior Member

Scusa, non ho risposto perché ancora
non ho provato.
Domani la provo e farò sapere....
Buona serata

tigre Profilo | Junior Member

ho provato modificandola in base ai miei campi:
mi da errore.

i campi della tabella che ho controllato sono:
codice periodo importo_base importo_1 importo_2
(dovrei sommare tutti gli importi per codice)
ho provato come mi hai consigliato ma la query si è modificata cosi:

SELECT codice, SUM(ISNULL(importo_base, 0) + ISNULL(importo_1, 0) + ISNULL(importo_2, 0)) AS totali
FROM (SELECT codice, CASE WHEN periodo = '01/2013' THEN ore ELSE 0 END AS a, CASE WHEN periodo = '02/2013' THEN ore ELSE 0 END AS b
FROM (SELECT codice, PERIODO
FROM dbo.tabella) AS derivedtbl_2) AS derivedtbl_1
GROUP BY codice

HolidaySoft.it Profilo | Junior Member

Ciao,
prova ancora... prima o poi ci riuscirai ad adeguare il mio esempio al tuo caso, dai impegnati... Nella tua query ho visto il campo "ore"... dove l'hai pescato??

Ciao
Mik
http://www.HolidaySoft.it
http://www.GarganoSapori.it - Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it - Crea la Vetrina per il tuo Ristorante

tigre Profilo | Junior Member

scusa, ho sbagliato il campo Ore era Totale.

HolidaySoft.it Profilo | Junior Member

Ok, facci sapere quando sarai riuscito ad utilizzare correttamente il mio esempio

Ciao
Mik
http://www.HolidaySoft.it
http://www.GarganoSapori.it - Olio ExtraVergine del Gargano
http://www.osteriaoristorante.it - Crea la Vetrina per il tuo Ristorante
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5