PDA

View Full Version : [SQL Server]Pivot


RaouL_BennetH
24-10-2010, 13:07
Ciao a tutti :)

Non riesco a comprendere bene come eseguire un incrocio fra tabelle.

Nel mio caso ho:



tabellaLavoriMese:

id_job (pk)
personaId,
cantiereId,
tipoLavoroId,
date (datetime)
totale




Ciņ che dovrei ricavare sono due viste:

una per visualizzare tutte le persone che hanno lavorato in un determinato cantiere durante il mese in oggetto

una per visualizzare tutti i cantieri dove la persona ha lavorato sempre per il mese in oggetto.

Il tipo di visualizzazione dovrebbe avere come nomi di colonna, tutti i giorni presenti nel mese relativo, anche dove non ci sono lavorazioni, mi spiego:

Nel caso in cui la vista sia "dipendente/cantieri", dovrei avere come colonne:


cantiere, g1, g2, g3, g4, etc.... g31


dove ovviamente g1, g2, g3 etc.. altro non sono che i giorni presenti nel mese.

Da dove potrei iniziare ?

Grazie mille :)

RaouL.

RaouL_BennetH
24-10-2010, 23:18
sono giunto alla query dalla quale partire per usare un pivot:



select t3.date, t2.centroCostoID, t2.servizioID, t2.totale
from Anagrafica_Dipendenti t1
left outer join
Operativo_Scheda_Mese_Dipendente t2 on t1.id_dipendente = t2.dipendenteID
right outer join Calendar t3 on t3.date = t2.date




aiutini ? :help:

RaouL_BennetH
25-10-2010, 17:32
Ok, risolto il problema del pivoting utilizzando uno strumento apposito di reportistica integrato in visual studio 2010, mi resta perņ un problema:


sulla query di sopra, fin quando scelgo un intervallo fra date mi mostra tutti i giorni compresi in quell'intervallo anche in presenza di valori 0 oppure nulli nel campo 'totale'.

Se invece filtro la ricerca in base a un campo tipo "dipendenteID", mi restituisce in output soltanto i giorni in cui c'č un totale.

Come posso fare in modo che mi inserisca anche i giorni in cui non c'č nessun valore ?

Grazie :)

RaouL.