Un argomento simile è già stato trattato in http://www.gambas-it.org/smf/index.php?topic=1308.0
ma non riesco ad addattarlo, ho carenze con gli array.
Ho un recordset dove è possibile che un campo testo si ripeta, mi serve sapere per ogni campo testo il conteggio
Esempio.
record 1 ricetta "Bresaola"
record 2 ricetta "Pasta"
record 3 ricetta "Bresaola"
Il conteggio mi serve per sapere se in un dato periodo di tempo una ricetta ricorre piu' volte, per sapere le quantità totali di alimenti da acquistare.
Allego pdf che non mi piace proprio come output, non somma i grammi..Un problema potrebbe essere che ho due recordset, uno per i pasti (dove sono gli id delle ricette) e uno per il dettaglio delle ricette (collegato all'id della ricetta).
Attualmente il codice della stampa per i recordset del dettaglio è cosi' strutturato:
FOR EACH myres
........
myres2 = myconn2.Exec("select ........ from ricette,dettaglio on ricette.IDDETT=dettaglio.ID where ricette.ID=&1 order by dettaglio.ALIMENTO asc", myres!IDRICETTA)
........
FOR EACH myres2
print myres2!ALIMENTO
print myres2!GRAMMI
NEXT
NEXT
ENDIF
mmm non capito una cosa...
immagino che le tabelle in questione siano tre:
una la chiamo Ricetta_Testa che contiene la descrizione della ricetta e relativa preparazione
una Ricetta_Righe che contiene gli alimenti
e una terza che sara' Menu_Settimanale dove saranno elencati i vari piatti di colazione pranzo e cena di tutta la settimana....
bene, se e' cosi' basta fare:
SELECT Count(Ricetta_Righe.Alimento) As Conteggio, SUM(Ricetta_Righe.Grammi) As Peso, Ricetta_Testa.DsRicetta
FROM Ricetta_Testa INNER JOIN Ricetta_Righe On (Ricetta_Testa.Id = Ricetta_Righe.Id) INNER JOIN Menu_Settimanale ON (Menu_Settimanale.Id = Ricetta_Testa.Id)
GROUP BY Ricetta_Testa.DsRicetta
ORDER BY Ricetta_Testa.DsRicetta;
in questo caso la query ti somma (e conteggia) sia i grammi che trova nelle singole ricette e somma anche per quante volte vengono usate le ricette durante la settimana...
spero di non averti confuso le idee... :)
ho semplificato le cose, vediamo se mi puoi aiutare, la tabella si chiama 'temporanea' è composta da tre campi testo, RICETTA,ALIMENTO,GRAMMI. Non consideranto il primo (non serve x ora) devo estrarre il campo alimento raggruppato e fare la somma del campo grammi (opportunatamente convertito in float), questa sql mi da il totale dei grammi, senza considerare se il totale è giusto, non mi raggruppa:
mysql = "SELECT COUNT(temporanea.ALIMENTO) as 'Comprare', SUM(temporanea.GRAMMI) As 'Gr' FROM temporanea GROUP BY 'Comprare' ORDER BY 'Comprare' asc"
hu non ho letto una cosa, perche' tre campi testo?
il campo grammi dovrebbe essere di tipo float...
dovrebbe...non mi andava di modificare la tabella degli alimenti..circa 700 recs, ergo converto in float alla lettura, questa funziona sembra:
"SELECT temporanea.ALIMENTO,COUNT(temporanea.ALIMENTO) as 'N', temporanea.GRAMMI FROM temporanea GROUP BY temporanea.ALIMENTO ORDER BY temporanea.ALIMENTO asc"
per i grammi totali moltiplico il valore dei grammi della singola riga del recordset per l'N corrispettivo, devo spuntare ma sembra che va
Urka rileggendo bene, cosa che non ho fatto prima, mi sono accorto di aver scritto un sacco di c.....e ;D
mysql = "SELECT temporanea.ALIMENTO, COUNT(temporanea.ALIMENTO) as Comprare, SUM(temporanea.GRAMMI) As Gr FROM temporanea GROUP BY ALIMENTO ORDER BY ALIMENTO asc"
in teoria cosi' funziona, l'unico dubbio mi rimane sul fatto che il campo GRAMMI sia string e non numerico
ha vedo che avevi gia' risolto, meglio cosi' :)