Ovviamente l'orario l'ho messo nel campo data.
Scrordo i pezzi perchè quando apro un post cerco sempre di semplificare al massimo tutto
Adesso faccio un po' di prove!
Grazie
Ovviamente l'orario l'ho messo nel campo data.
Scrordo i pezzi perchè quando apro un post cerco sempre di semplificare al massimo tutto
Adesso faccio un po' di prove!
Grazie
Dunque tra mille interruzioni la tua query non sono riuscita a farla funzionare. Però tra i vecchi appunti ho trovata questa funzionante che fa al caso mio
Il problema è unirlo con il left join! Ho sempre errori di sintatticodice:SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatoruolo_agg, (SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatopers_agg FROM ( SELECT idticket, MAX(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) AS agg
ERRORE:codice:SELECT ticket.idticket, ticket.chiuso, ticket.assegnatopers, ticket.assegnatoruolo, ticket.numero, ticket.dataapertura, clienti.idcliente, nome, nomeimp, impianto.idimpianto, impianto, impianto.indirizzo, localita, impianto.potenza, provincia, agg.aggiornato_al, agg.assegnatoruolo_agg, agg.assegnatopers_agg FROM ticket INNER JOIN clienti on ticket.idcliente = clienti.idcliente INNER JOIN impianto on ticket.idimpianto = impianto.idimpianto INNER JOIN localita ON impianto.idlocalita = localita.idlocalita LEFT JOIN SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatoruolo_agg, (SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatopers_agg FROM ( SELECT idticket, MAX(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) AS agg ON ticket.idticket= agg.idticket WHERE ticket.chiuso='no' and impianto.attivo='si' ORDER BY dataapertura, numero, nome, localita, provincia
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.id' at line 6
Ho provato a mettere anche la partentesi prima della select, ma dopo mi dice che servono gli alias per tutte le tabelle.
Uff che fatica!
Ho fatto anche questa prova di sintassi
In questo caso ricevo l'errore "ogni tabella derivata deve avere il proprio alias"codice:SELECT ticket.idticket, ticket.chiuso, ticket.assegnatopers, ticket.assegnatoruolo, ticket.numero, ticket.dataapertura, clienti.idcliente, nome, nomeimp, impianto.idimpianto, impianto, impianto.indirizzo, localita, impianto.potenza, provincia, agg.aggiornato_al, agg.assegnatoruolo_agg, agg.assegnatopers_agg FROM ticket INNER JOIN clienti on ticket.idcliente = clienti.idcliente INNER JOIN impianto on ticket.idimpianto = impianto.idimpianto INNER JOIN localita ON impianto.idlocalita = localita.idlocalita LEFT JOIN (SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatoruolo_agg, (SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatopers_agg FROM ( SELECT idticket, MAX(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket )) AS agg ON ticket.idticket= agg.idticket WHERE ticket.chiuso='no' and impianto.attivo='si' ORDER BY dataapertura, numero, nome, localita, provincia
Cosa però che mi pare esserci.
Grazie!
Dici così:
Coretto così ho comunque l'errore che ogni tabella ha bisogno del suo aliascodice:SELECT ticket.idticket, ticket.chiuso, ticket.assegnatopers, ticket.assegnatoruolo, ticket.numero, ticket.dataapertura, clienti.idcliente, clienti.nome, impianto.nomeimp, impianto.idimpianto, impianto.impianto, impianto.indirizzo, impianto.localita, impianto.potenza, impianto.provincia, agg.aggiornato_al, agg.assegnatoruolo_agg, agg.assegnatopers_agg FROM ticket INNER JOIN clienti on ticket.idcliente = clienti.idcliente INNER JOIN impianto on ticket.idimpianto = impianto.idimpianto INNER JOIN localita ON impianto.idlocalita = localita.idlocalita LEFT JOIN (SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatoruolo_agg, (SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg) assegnatopers_agg FROM ( SELECT idticket, MAX(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket )) AS agg ON ticket.idticket= agg.idticket WHERE ticket.chiuso='no' and impianto.attivo='si' ORDER BY ticket.dataapertura, ticket.numero, clienti.nome, impianto.localita, impianto.provincia
codice:SELECT ticket.idticket, ticket.chiuso, ticket.assegnatopers, ticket.assegnatoruolo, ticket.numero, ticket.dataapertura, clienti.idcliente, clienti.nome, impianto.nomeimp, impianto.idimpianto, impianto.impianto, impianto.indirizzo, impianto.localita, impianto.potenza, impianto.provincia, agg.aggiornato_al, agg.assegnatoruolo_agg, agg.assegnatopers_agg FROM ticket INNER JOIN clienti ON ticket.idcliente = clienti.idcliente INNER JOIN impianto ON ticket.idimpianto = impianto.idimpianto INNER JOIN localita ON impianto.idlocalita = localita.idlocalita LEFT JOIN ( SELECT idticket, dataagg, ( SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg ) assegnatoruolo_agg, ( SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg ) assegnatopers_agg FROM ( SELECT idticket, Max(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) ) AS agg ON ticket.idticket = agg.idticket WHERE ticket.chiuso = 'no' AND impianto.attivo = 'si' ORDER BY ticket.dataapertura, ticket.numero, clienti.nome, impianto.localita, impianto.provincia
AL momento ho risolto in maniera poco carina con php, ma riuscire a fare questa query oramai è una sfida
Avevo perso il tuo messaggio guardo....
così è più facile capire dove manca (verso il fondo)
Ho fatto questa modifica:
e ho l'errorecodice:SELECT idticket, Max(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) aggiornato_al
#1054 - Unknown column 'agg.idticket' in 'where clause'
Come mio solito provo a isolare i problemi mettendo a parte questo blocco:
e ho l'errorecodice:( SELECT idticket, dataagg, ( SELECT assegnatoruolo FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg ) assegnatoruolo_agg, ( SELECT assegnatopers FROM ticket_agg t2 WHERE agg.idticket = t2.idticket AND agg.dataagg = t2.dataagg ) assegnatopers_agg FROM ( SELECT idticket, Max(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) aggiornato_al ) AS agg
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS agg
---
Domanda che non centra ho due tabelle con alias t2 ho provato anche a fare t1, t2, t3 ma non cambia il risultato.
Grazie degli aiuti
non è che devi fare una subquery per ogni campo...