Ver Mensaje Individual
  #4  
Antiguo 05-06-2016
mblascog mblascog is offline
Miembro
 
Registrado: may 2006
Posts: 131
Reputación: 19
mblascog Va por buen camino
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
Responder Con Cita