Newsgroup: it.comp.appl.access
Titolo: Query in orizzontale per presenze

Buongiorno a tutti, in una tabella così formata:
 
nome
data
ore_ordinario
ore_straordinario
ore_ferie
ore_malattia
 
che verrà compilata ogni giorno per le presenze dipendenti ho la necessità di ottenere una query orizzontale dove le colonne diverranno i giorni.. Ho scritto questo, ma mi domandavo se c'era una qualcosa di meno macchinoso e più semplice. Che dite???
 
 
SELECT tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome, 'O' as Tipo,Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='1',tbl_Dpresenza.ore_ordinario,0)) AS [01], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='2',tbl_Dpresenza.ore_ordinario,0)) AS [02], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='3',tbl_Dpresenza.ore_ordinario,0)) AS [03], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='4',tbl_Dpresenza.ore_ordinario,0)) AS [04], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='5',tbl_Dpresenza.ore_ordinario,0)) AS [05], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='6',tbl_Dpresenza.ore_ordinario,0)) AS [06], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='7',tbl_Dpresenza.ore_ordinario,0)) AS [07], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='8',tbl_Dpresenza.ore_ordinario,0)) AS [08], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='9',tbl_Dpresenza.ore_ordinario,0)) AS [09], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='10',tbl_Dpresenza.ore_ordinario,0)) AS [10], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='11',tbl_Dpresenza.ore_ordinario,0)) AS [11], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='12',tbl_Dpresenza.ore_ordinario,0)) AS [12], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='13',tbl_Dpresenza.ore_ordinario,0)) AS [13], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='14',tbl_Dpresenza.ore_ordinario,0)) AS [14], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='15',tbl_Dpresenza.ore_ordinario,0)) AS [15], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='16',tbl_Dpresenza.ore_ordinario,0)) AS [16], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='17',tbl_Dpresenza.ore_ordinario,0)) AS [17], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='18',tbl_Dpresenza.ore_ordinario,0)) AS [18], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='19',tbl_Dpresenza.ore_ordinario,0)) AS [19], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='20',tbl_Dpresenza.ore_ordinario,0)) AS [20], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='21',tbl_Dpresenza.ore_ordinario,0)) AS [21], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='22',tbl_Dpresenza.ore_ordinario,0)) AS [22], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='23',tbl_Dpresenza.ore_ordinario,0)) AS [23], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='24',tbl_Dpresenza.ore_ordinario,0)) AS [24], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='25',tbl_Dpresenza.ore_ordinario,0)) AS [25], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='26',tbl_Dpresenza.ore_ordinario,0)) AS [26], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='27',tbl_Dpresenza.ore_ordinario,0)) AS [27], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='28',tbl_Dpresenza.ore_ordinario,0)) AS [28], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='29',tbl_Dpresenza.ore_ordinario,0)) AS [29], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='30',tbl_Dpresenza.ore_ordinario,0)) AS [30], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='31',tbl_Dpresenza.ore_ordinario,0)) AS [31]
FROM tbl_anagra INNER JOIN tbl_Dpresenza ON 
tbl_anagra.id
 = tbl_Dpresenza.idanagra
WHERE (((tbl_Dpresenza.data) Between #02/1/2011# And #02/28/2011#))
GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;
 
UNION
 
SELECT tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome, 'S' as 'Tipo',Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='1',tbl_Dpresenza.ore_straordinario,0)) AS [01], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='2',tbl_Dpresenza.ore_straordinario,0)) AS [02], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='3',tbl_Dpresenza.ore_straordinario,0)) AS [03], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='4',tbl_Dpresenza.ore_straordinario,0)) AS [04], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='5',tbl_Dpresenza.ore_straordinario,0)) AS [05], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='6',tbl_Dpresenza.ore_straordinario,0)) AS [06], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='7',tbl_Dpresenza.ore_straordinario,0)) AS [07], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='8',tbl_Dpresenza.ore_straordinario,0)) AS [08], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='9',tbl_Dpresenza.ore_straordinario,0)) AS [09], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='10',tbl_Dpresenza.ore_straordinario,0)) AS [10], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='11',tbl_Dpresenza.ore_straordinario,0)) AS [11], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='12',tbl_Dpresenza.ore_straordinario,0)) AS [12], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='13',tbl_Dpresenza.ore_straordinario,0)) AS [13], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='14',tbl_Dpresenza.ore_straordinario,0)) AS [14], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='15',tbl_Dpresenza.ore_straordinario,0)) AS [15], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='16',tbl_Dpresenza.ore_straordinario,0)) AS [16], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='17',tbl_Dpresenza.ore_straordinario,0)) AS [17], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='18',tbl_Dpresenza.ore_straordinario,0)) AS [18], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='19',tbl_Dpresenza.ore_straordinario,0)) AS [19], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='20',tbl_Dpresenza.ore_straordinario,0)) AS [20], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='21',tbl_Dpresenza.ore_straordinario,0)) AS [21], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='22',tbl_Dpresenza.ore_straordinario,0)) AS [22], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='23',tbl_Dpresenza.ore_straordinario,0)) AS [23], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='24',tbl_Dpresenza.ore_straordinario,0)) AS [24], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='25',tbl_Dpresenza.ore_straordinario,0)) AS [25], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='26',tbl_Dpresenza.ore_straordinario,0)) AS [26], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='27',tbl_Dpresenza.ore_straordinario,0)) AS [27], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='28',tbl_Dpresenza.ore_straordinario,0)) AS [28], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='29',tbl_Dpresenza.ore_straordinario,0)) AS [29], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='30',tbl_Dpresenza.ore_straordinario,0)) AS [30], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='31',tbl_Dpresenza.ore_straordinario,0)) AS [31]
FROM tbl_anagra INNER JOIN tbl_Dpresenza ON 
tbl_anagra.id
 = tbl_Dpresenza.idanagra
WHERE (((tbl_Dpresenza.data) Between #02/1/2011# And #02/28/2011#))
GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;
 
UNION
 
SELECT tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome, 'F' as 'Tipo',Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='1',tbl_Dpresenza.ore_ferie,0)) AS [01], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='2',tbl_Dpresenza.ore_ferie,0)) AS [02], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='3',tbl_Dpresenza.ore_ferie,0)) AS [03], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='4',tbl_Dpresenza.ore_ferie,0)) AS [04], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='5',tbl_Dpresenza.ore_ferie,0)) AS [05], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='6',tbl_Dpresenza.ore_ferie,0)) AS [06], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='7',tbl_Dpresenza.ore_ferie,0)) AS [07], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='8',tbl_Dpresenza.ore_ferie,0)) AS [08], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='9',tbl_Dpresenza.ore_ferie,0)) AS [09], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='10',tbl_Dpresenza.ore_ferie,0)) AS [10], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='11',tbl_Dpresenza.ore_ferie,0)) AS [11], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='12',tbl_Dpresenza.ore_ferie,0)) AS [12], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='13',tbl_Dpresenza.ore_ferie,0)) AS [13], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='14',tbl_Dpresenza.ore_ferie,0)) AS [14], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='15',tbl_Dpresenza.ore_ferie,0)) AS [15], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='16',tbl_Dpresenza.ore_ferie,0)) AS [16], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='17',tbl_Dpresenza.ore_ferie,0)) AS [17], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='18',tbl_Dpresenza.ore_ferie,0)) AS [18], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='19',tbl_Dpresenza.ore_ferie,0)) AS [19], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='20',tbl_Dpresenza.ore_ferie,0)) AS [20], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='21',tbl_Dpresenza.ore_ferie,0)) AS [21], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='22',tbl_Dpresenza.ore_ferie,0)) AS [22], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='23',tbl_Dpresenza.ore_ferie,0)) AS [23], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='24',tbl_Dpresenza.ore_ferie,0)) AS [24], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='25',tbl_Dpresenza.ore_ferie,0)) AS [25], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='26',tbl_Dpresenza.ore_ferie,0)) AS [26], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='27',tbl_Dpresenza.ore_ferie,0)) AS [27], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='28',tbl_Dpresenza.ore_ferie,0)) AS [28], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='29',tbl_Dpresenza.ore_ferie,0)) AS [29], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='30',tbl_Dpresenza.ore_ferie,0)) AS [30], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='31',tbl_Dpresenza.ore_ferie,0)) AS [31]
FROM tbl_anagra INNER JOIN tbl_Dpresenza ON 
tbl_anagra.id
 = tbl_Dpresenza.idanagra
WHERE (((tbl_Dpresenza.data) Between #02/1/2011# And #02/28/2011#))
GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;
 
UNION
 
SELECT tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome, 'M' as 'Tipo',Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='1',tbl_Dpresenza.ore_malattia,0)) AS [01], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='2',tbl_Dpresenza.ore_malattia,0)) AS [02], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='3',tbl_Dpresenza.ore_malattia,0)) AS [03], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='4',tbl_Dpresenza.ore_malattia,0)) AS [04], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='5',tbl_Dpresenza.ore_malattia,0)) AS [05], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='6',tbl_Dpresenza.ore_malattia,0)) AS [06], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='7',tbl_Dpresenza.ore_malattia,0)) AS [07], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='8',tbl_Dpresenza.ore_malattia,0)) AS [08], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='9',tbl_Dpresenza.ore_malattia,0)) AS [09], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='10',tbl_Dpresenza.ore_malattia,0)) AS [10], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='11',tbl_Dpresenza.ore_malattia,0)) AS [11], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='12',tbl_Dpresenza.ore_malattia,0)) AS [12], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='13',tbl_Dpresenza.ore_malattia,0)) AS [13], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='14',tbl_Dpresenza.ore_malattia,0)) AS [14], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='15',tbl_Dpresenza.ore_malattia,0)) AS [15], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='16',tbl_Dpresenza.ore_malattia,0)) AS [16], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='17',tbl_Dpresenza.ore_malattia,0)) AS [17], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='18',tbl_Dpresenza.ore_malattia,0)) AS [18], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='19',tbl_Dpresenza.ore_malattia,0)) AS [19], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='20',tbl_Dpresenza.ore_malattia,0)) AS [20], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='21',tbl_Dpresenza.ore_malattia,0)) AS [21], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='22',tbl_Dpresenza.ore_malattia,0)) AS [22], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='23',tbl_Dpresenza.ore_malattia,0)) AS [23], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='24',tbl_Dpresenza.ore_malattia,0)) AS [24], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='25',tbl_Dpresenza.ore_malattia,0)) AS [25], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='26',tbl_Dpresenza.ore_malattia,0)) AS [26], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='27',tbl_Dpresenza.ore_malattia,0)) AS [27], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='28',tbl_Dpresenza.ore_malattia,0)) AS [28], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='29',tbl_Dpresenza.ore_malattia,0)) AS [29], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='30',tbl_Dpresenza.ore_malattia,0)) AS [30], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='31',tbl_Dpresenza.ore_malattia,0)) AS [31]
FROM tbl_anagra INNER JOIN tbl_Dpresenza ON 
tbl_anagra.id
 = tbl_Dpresenza.idanagra
WHERE (((tbl_Dpresenza.data) Between #02/1/2011# And #02/28/2011#))
GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;
 
UNION SELECT tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome, 'P' as 'Tipo', Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='1',tbl_Dpresenza.ore_permessi,0)) AS [01], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='2',tbl_Dpresenza.ore_permessi,0)) AS [02], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='3',tbl_Dpresenza.ore_permessi,0)) AS [03], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='4',tbl_Dpresenza.ore_permessi,0)) AS [04], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='5',tbl_Dpresenza.ore_permessi,0)) AS [05], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='6',tbl_Dpresenza.ore_permessi,0)) AS [06], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='7',tbl_Dpresenza.ore_permessi,0)) AS [07], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='8',tbl_Dpresenza.ore_permessi,0)) AS [08], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='9',tbl_Dpresenza.ore_permessi,0)) AS [09], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='10',tbl_Dpresenza.ore_permessi,0)) AS [10], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='11',tbl_Dpresenza.ore_permessi,0)) AS [11], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='12',tbl_Dpresenza.ore_permessi,0)) AS [12], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='13',tbl_Dpresenza.ore_permessi,0)) AS [13], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='14',tbl_Dpresenza.ore_permessi,0)) AS [14], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='15',tbl_Dpresenza.ore_permessi,0)) AS [15], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='16',tbl_Dpresenza.ore_permessi,0)) AS [16], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='17',tbl_Dpresenza.ore_permessi,0)) AS [17], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='18',tbl_Dpresenza.ore_permessi,0)) AS [18], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='19',tbl_Dpresenza.ore_permessi,0)) AS [19], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='20',tbl_Dpresenza.ore_permessi,0)) AS [20], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='21',tbl_Dpresenza.ore_permessi,0)) AS [21], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='22',tbl_Dpresenza.ore_permessi,0)) AS [22], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='23',tbl_Dpresenza.ore_permessi,0)) AS [23], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='24',tbl_Dpresenza.ore_permessi,0)) AS [24], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='25',tbl_Dpresenza.ore_permessi,0)) AS [25], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='26',tbl_Dpresenza.ore_permessi,0)) AS [26], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='27',tbl_Dpresenza.ore_permessi,0)) AS [27], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='28',tbl_Dpresenza.ore_permessi,0)) AS [28], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='29',tbl_Dpresenza.ore_permessi,0)) AS [29], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='30',tbl_Dpresenza.ore_permessi,0)) AS [30], Sum(IIf(DatePart("d",[tbl_Dpresenza]![data])='31',tbl_Dpresenza.ore_permessi,0)) AS [31]
FROM tbl_anagra INNER JOIN tbl_Dpresenza ON 
tbl_anagra.id
 = tbl_Dpresenza.idanagra
WHERE (((tbl_Dpresenza.data) Between #02/1/2011# And #02/28/2011#))
GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;

 GROUP BY tbl_Dpresenza.idanagra, tbl_anagra.cognome, tbl_anagra.nome;
 
Questa nn è una query.......E' UN MASSACRO!!!!!!!!!! Ma la esegue?????
Cmq tu hai la necessità di avere praticamente un calendario (data in
riga) per tutti i nomi (in colonna) e nell'incrocio i valori delle ore
rispetto alla tipologia? Allora mi sa che hai sbagliato
struttura.....ce ne sono forse di migliori

 Questa nn è una query.......E' UN MASSACRO!!!!!!!!!!
 
anche il tuo modo di quotare è un massacro ;)
 
 
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\

 anche il tuo modo di quotare è un massacro ;)
Affermazione assolutamente appropriata ;-{)
 
 
-- 
 
ac (x=y-1)

 ha scritto nel messaggio 
news:5756492.1775.1326021685855.JavaMail.geo-discussion-forums@vbtk21...
Buongiorno a tutti, in una tabella così formata:
 
nome
data
ore_ordinario
ore_straordinario
ore_ferie
ore_malattia
 
che verrà compilata ogni giorno per le presenze dipendenti ho la necessità 
di ottenere una query orizzontale dove le colonne diverranno i giorni.. Ho 
scritto questo, ma mi domandavo se c'era una qualcosa di meno macchinoso e 
più semplice. Che dite???
---------------------------------------------
Il numero massimo di campi sia per tabella che per query è 255 (254).
Da ciò ne deriva che non potresti avere più di 254 colonne.
Ti consiglio di cambiare la struttura del db.
 
Ciao, Carlo 
 
 


E' stato google.......

Ma se devo essere sincero la esegue ed anche velocemente, tipo 5 secondi...
 
Dato che ci sono impazzito per qualche giorno avreste dei consigli su come strutturare il db e di seguito poi la query??? Il massimo di colonne per mese è di 31 in quanto devo visualizzare mese per mese... Devo praticamente ricreare il foglio presenza mensile dei dipendenti...
 
Ciao a tutti e grazie