RaouL_BennetH
26-08-2006, 20:37
Ciao a tutti e grazie in anticipo a chiunque almeno si limiterà a leggermi.
Passando al problema:
Ho una semplice tabella composta da 3 colonne:
ID = chiave primaria
ID_Persona = int
Giorno = int
Totale = time.
In questa tabella i campi vengono memorizzati in questo modo:
ID_Persona Giorno Totale
1 1 01:00:00
1 2 03:15:00
1 3 04:00:00
2 1 05:35:00
2 2 04:15:00
2 3 03:25:00
etc.....
Ora, io avrei bisogno di fare una query che me li riporti così:
ID_Persona 1 2 3
1 01:00:00 03:15:00 04:00:00
2 05:35:00 04:15:00 03:25:00
Questa query, direttamente da mysql la ottengo così:
SELECT ID_Persona, MAX(IF(giorno='1',totale,'')) AS '1',
MAX(IF(giorno='2',totale,'')) AS '2',
MAX(IF(giorno='3',totale,'')) AS '3' FROM persone GROUP BY ID_Persona;
E funziona perfettamente all'interno di mysql.
Il mio problema è che devo usare questa query dall'interno di un programma C#.
Stavo provando in questa maniera ma senza successo:
for (int count = 1; count <=3; count++)
{
string select = "SELECT ID_Persona, MAX(IF(giorno='" + count +"', totale, '')) AS '" + count + "' FROM Persone GROUP BY ID_Persona";
MySqlDataAdapter mda = new MySqlDataAdapter(select, miaConnessione);
DataSet ds = new DataSet();
mda.Fill(ds, "Persone");
griglia.DataSource = ds;
griglia.DataMember = "Persone";
}
questo codice però non mi visualizza le cose come vorrei, ma le visualizza così:
ID_Persona 3
1
2 03:25:00
mentre invece dovrei avere questo:
ID_Persona 1 2 3
1 01:00:00 03:15:00 04:00:00
2 05:35:00 04:15:00 03:25:00
Mi scuso per la lunghezza del post, ma spero che qualcuno di voi riesca ad aiutarmi.
Grazie mille.
Raoul
Passando al problema:
Ho una semplice tabella composta da 3 colonne:
ID = chiave primaria
ID_Persona = int
Giorno = int
Totale = time.
In questa tabella i campi vengono memorizzati in questo modo:
ID_Persona Giorno Totale
1 1 01:00:00
1 2 03:15:00
1 3 04:00:00
2 1 05:35:00
2 2 04:15:00
2 3 03:25:00
etc.....
Ora, io avrei bisogno di fare una query che me li riporti così:
ID_Persona 1 2 3
1 01:00:00 03:15:00 04:00:00
2 05:35:00 04:15:00 03:25:00
Questa query, direttamente da mysql la ottengo così:
SELECT ID_Persona, MAX(IF(giorno='1',totale,'')) AS '1',
MAX(IF(giorno='2',totale,'')) AS '2',
MAX(IF(giorno='3',totale,'')) AS '3' FROM persone GROUP BY ID_Persona;
E funziona perfettamente all'interno di mysql.
Il mio problema è che devo usare questa query dall'interno di un programma C#.
Stavo provando in questa maniera ma senza successo:
for (int count = 1; count <=3; count++)
{
string select = "SELECT ID_Persona, MAX(IF(giorno='" + count +"', totale, '')) AS '" + count + "' FROM Persone GROUP BY ID_Persona";
MySqlDataAdapter mda = new MySqlDataAdapter(select, miaConnessione);
DataSet ds = new DataSet();
mda.Fill(ds, "Persone");
griglia.DataSource = ds;
griglia.DataMember = "Persone";
}
questo codice però non mi visualizza le cose come vorrei, ma le visualizza così:
ID_Persona 3
1
2 03:25:00
mentre invece dovrei avere questo:
ID_Persona 1 2 3
1 01:00:00 03:15:00 04:00:00
2 05:35:00 04:15:00 03:25:00
Mi scuso per la lunghezza del post, ma spero che qualcuno di voi riesca ad aiutarmi.
Grazie mille.
Raoul