Query SQL

giovedì 17 giugno 2010 - 18.02

gemepaso Profilo | Newbie


Ciao a tutti
Domanda su SQL non so se banale o no ..

da una tabella con fatturato per cliente e per anno

CLIENTE FATT ANNO
CLIENTE A 1000 2008
CLIENTE A 1200 2009
CLIENTE A 1300 2010
CLIENTE B 700 2009
CLIENTE B 1100 2010
CLIENTE C 1700 2008
CLIENTE C 1300 2009
CLIENTE C 1400 2010

debo estrarre dei dati in questa forma, mettendo i fatturati su singola riga
CLIENTE FATT_2008 FATT_2009 FATT_2010
CLIENTE A 1000 1200 1300
CLIENTE B 0 700 1100
CLIENTE B 1700 1300 1400

non ho idea da dove partire ....
qualche idea??
Grazie


alx_81 Profilo | Guru

>Ciao a tutti
Ciao
>non ho idea da dove partire ....
>qualche idea??
prova a vedere questo link:
http://microsoft-it.confusenet.com/showthread.php?t=11271

>Grazie
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

lbenaglia Profilo | Guru

>non ho idea da dove partire ....
>qualche idea??

Ciao Marco,

Che DBMS utilizzi?
Il numero univoco di anni è conosciuto a priori?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

gemepaso Profilo | Newbie

ops...
devo farlo su un MS SQL 2005 ..

Seguendo il post di Alx_81 sono riuscito, senza creare procedure di insert o creazioni di tabelle temporanee...
ecco la select..
da una tabella FATT ..
CLIENTE FATTURATO ANNO
CLIENTE A 1000,00 2008
CLIENTE A 1200,00 2009
CLIENTE A 1300,00 2010
CLIENTE B 700,00 2009
CLIENTE B 1100,00 2010
CLIENTE C 1700,00 2008
CLIENTE C 1300,00 2009
CLIENTE C 1400,00 2010
............................................
SELECT
CLIENTE ,
COALESCE([1], '') AS FAT2008,
COALESCE([2], '') AS FAT2009,
COALESCE([3], '') AS FAT2010

FROM (
SELECT
CLIENTE
, FATTURATO
, ROW_NUMBER() OVER(
PARTITION BY CLIENTE
ORDER BY ANNO) AS n
FROM FATT) AS D
PIVOT (MAX(FATTURATO) FOR n IN([1], [2], [3])) AS P;
GO


GRAZIE ..
MARCO
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