Italian Raggruppare i dati e visualizzarli in un grafic

Star-Dust

Expert
Licensed User
Longtime User
SELECT Data, SUM(Importo) FROM incassi WHERE n_macchina = 2 GROUP BY SUBSTRING(Data,4,2)\nExpression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'manzuoli14424.incassi.Data' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
ti chiedevo senza il comando GROUP che errore ti dava
 

Nikeddy

Active Member
Licensed User
Longtime User
sempre che era incompatibile

; this is incompatible with sql_mode=only_full_group_by
 

Star-Dust

Expert
Licensed User
Longtime User

Nikeddy

Active Member
Licensed User
Longtime User
purtroppo l hosting non mi permette di modificare le variabili mysql, devo per forza spostare il db.

vi aggiorno..
 

Star-Dust

Expert
Licensed User
Longtime User
purtroppo l hosting non mi permette di modificare le variabili mysql, devo per forza spostare il db.

vi aggiorno..
Puoi raggruppare tu da codice
 

XorAndOr

Active Member
Licensed User
Longtime User
Scusa, stai usando un database online (su un sito)? se (si) si chiama MySQL se invece usi un database sul telefono si chiama SQL, che sono 2 cose totalmente diverse
leggendo i vari post che scrivi mi sembra che fai confusione su MySQL e SQL. Puoi postare la chiamata che fai al database? cioè usi (execremotequery)? perchè se usi questo tu dovresti leggere i dati che arrivano da una pagina PHP, quindi in formato JSON. Che và a finire nel JobDone di B4A, che a sua volta viene splittata come la vuoi. E quindi và a finire nello grafico che ti serve.Se sbaglio dimentica questo post!
 

Star-Dust

Expert
Licensed User
Longtime User
Scusa, stai usando un database online (su un sito)? se (si) si chiama MySQL se invece usi un database sul telefono si chiama SQL, che sono 2 cose totalmente diverse
leggendo i vari post che scrivi mi sembra che fai confusione su MySQL e SQL. Puoi postare la chiamata che fai al database? cioè usi (execremotequery)? perchè se usi questo tu dovresti leggere i dati che arrivano da una pagina PHP, quindi in formato JSON. Che và a finire nel JobDone di B4A, che a sua volta viene splittata come la vuoi. E quindi và a finire nello grafico che ti serve.Se sbaglio dimentica questo post!
Usa ub DB MySQL su un sito.
Ma probabilmente ha un servizio (a pagamento o gratuito)
La tua proposta é buona ma dipende se dispone di php e se conosce php.
Io uso php per queste cose in effetti, ma ne conosco poco non uso nemmeno JSON :p
 

Star-Dust

Expert
Licensed User
Longtime User
Ho trovato un HELPER su questo FLAG
ONLY_FULL_GROUP_BY
Quando si specifica una colonna non aggregata e non raggruppata in una clausola SELECT, il risultato non è definito. Per questo motivo dovrebbe essere generato un errore, ma ciò accade solo se questo flag è impostato.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User

Nikeddy

Active Member
Licensed User
Longtime User
ho cambiato server, ora va meglio e funziona, solo che non mi visualizza la data

ExecuteRemoteQuery("SELECT MONTHNAME(Data) As mese, SUM(Importo) As totale FROM incassi WHERE n_macchina = " & macchina & " GROUP BY MONTH(Data)",containcasso)



la data é VarChar(16) formattata cosi : 02/01/2018 05:14


il risultato della query e' : Response from server: [{"mese":null,"totale":"1811"}]
 

Star-Dust

Expert
Licensed User
Longtime User
ho cambiato server, ora va meglio e funziona, solo che non mi visualizza la data

ExecuteRemoteQuery("SELECT MONTHNAME(Data) As mese, SUM(Importo) As totale FROM incassi WHERE n_macchina = " & macchina & " GROUP BY MONTH(Data)",containcasso)

la data é VarChar(16) formattata cosi : 02/01/2018 05:14

il risultato della query e' : Response from server: [{"mese":null,"totale":"1811"}]
sembra risultato di un campo vuoto o nullo, i dati ci sono nella tabella?
io sostituirei monthname con month
e nel codice userei una funzione che cambia il mese in nome

B4X:
ExecuteRemoteQuery("SELECT MONTH(Data) As mese, SUM(Importo) As totale FROM incassi WHERE n_macchina = " & macchina & " GROUP BY MONTH(Data)",containcasso)
 

Nikeddy

Active Member
Licensed User
Longtime User
ora quindi ho due problemi.

come cambio in varchar nel db con data? se provo da phpmyadmin a cambiarlo nella struttura mi esce
dot.gif
Errore nella query:
#1292 - Incorrect datetime value: '02/01/2018 05:14'

il secondo e' che anche l'importo non mi calcola i decimali...praticamente non me li conteggia, sono varchar7
 

Star-Dust

Expert
Licensed User
Longtime User
Non basta cambiare struttura, i dati vanno inseriti nel modo corretto, come data.
Anche i valori devono essere inseriti come valori numerici.

Scarica una copia del database in locale, e ricaricalo record per record nel formato corretto
 

LucaMs

Expert
Licensed User
Longtime User
Non basta cambiare struttura, i dati vanno inseriti nel modo corretto, come data.

Scarica una copia del database in locale, e ricaricalo record per record nel formato corretto
Ovvero o vuoti la tabella (perlomeno i campi di cui cambi il tipo) o ne crei una nuova, con i campi del formato giusto, ed esegui un passaggio di dati dall'una all'altra.

Per i decimali, perché non usare un tipo di campo "consono" anziché un varchar? :)
 

Star-Dust

Expert
Licensed User
Longtime User
e ti ricordo che se vuoi puoi anche lasciare la data come varchar, se usi la substring.
come da esempio che ho inviato prima io.
 
Top