Salve,
ho un problema con un db di un cliente, purtroppo non posso modificarlo perchè è il risultato di un'esportazione di AS400.
Il db è SQL Server 2005.
ho una tabella con questi campi:
codice_utente
riga
etichetta
valore
In pratica per "descrivere" un utente la tabella genera 32 record, ad esempio
1 / 0 / fatturato / 1000
1 / 1 / budget / 2500
1 / 2 / spese / 500
...
In pratica è esageratamente pesante lavorare con una query, per cui volevo realizzare una vista che mi mostrasse i dati già ordinati in modo che ogni riga rappresentasse un utente:
SELECT
(SELECT valore
FROM tabella AS tabella_1
WHERE tabella_1.riga = 0 AND tabella_1.codice_utente = tabella.codice)
AS Fatturato,
(SELECT valore
FROM tabella AS tabella_2
WHERE tabella_2.riga = 1 AND tabella_2.codice_utente = tabella.codice)
AS Budget,
(SELECT valore
FROM tabella AS tabella_3
WHERE tabella_3.riga = 0 AND tabella_3.codice_utente = tabella.codice)
AS Spese,
...
FROM tabella WHERE tabella.codice_utente = 1
Esiste modo più snello? Non tanto per l'eleganza del codice, quanto per le performance della query che è decisamente lenta?
Grazie mille.


Rispondi quotando
