Se me ha pasado el tiempo para poder editar el anterior post, por lo que he tenido que crear uno nuevo
Si así no se puede, tendré que volver al inicio e intentar crear en tiempo de ejecución las sentencias sql.
La sentencia sql es la siguiente:
Código SQL
[-]SELECT idclient, client, concepte, historic, directori, idtasca, idestat, datavenciment, estat, color
FROM
(SELECT c.id idclient, c.client, t.concepte, t.historic, c.directori, t.id idtasca, e.id idestat, s.datavenciment, e.estat, e.color
FROM clients c
INNER JOIN tasques t ON t.idclient = c.id
INNER JOIN subtasques s ON s.idtasca = t.id
INNER JOIN estat e ON s.idestat = e.id
ORDER BY c.client ASC, s.datavenciment DESC) t1
GROUP BY client, idtasca
Y devuelve estos registros:
De estos registros, solo muestro en un dbgrid Client, Concepte y Estat. Y éstos son los únicos campos por los que en un momento dado tendré que ordenar
- por client, ya está, ya que esta misma ordena por client
- por concepte, la ha modificado así, y también funciona:
Código SQL
[-]SELECT idclient, client, concepte, historic, directori, idtasca, idestat, datavenciment, estat, color
FROM
(SELECT c.id idclient, c.client, t.concepte, t.historic, c.directori, t.id idtasca, e.id idestat, s.datavenciment, e.estat, e.color
FROM tasques t
INNER JOIN subtasques s ON t.id = s.idtasca
INNER JOIN clients c ON t.idclient = c.id
INNER JOIN estat e ON s.idestat = e.id
ORDER BY t.concepte ASC, s.datavenciment DESC) t1
GROUP BY concepte
- en cambio, por estat, no.
Código SQL
[-]SELECT idclient, client, concepte, historic, directori, idtasca, idestat, datavenciment, estat, color
FROM
(SELECT c.id idclient, c.client, t.concepte, t.historic, c.directori, t.id idtasca, e.id idestat, s.datavenciment, e.estat, e.color
FROM estat e
INNER JOIN subtasques s ON s.idestat = e.id
INNER JOIN tasques t ON t.id = s.idtasca
INNER JOIN clients c ON t.idclient = c.id
ORDER BY e.estat ASC, s.datavenciment DESC) t1
GROUP BY estat
- el registro con Client2 sale duplicado y no aparece uno cuyo cliente es Didac (habría de haber 2 con Didac)
Gracias por vuestra ayuda