Li voglio tutti!![]()
codice:ESEMPIO idticket dataapertura problema gruppodiassegnazione 1 2022-01-01 p1 g1_01 2 2022-01-02 p2 g2_02 3 2022-01-03 p3 g3_03 4 2022-01-04 p4 g4_04 idaggiornamento dataaggiornamento idticket problema gruppodiassegnazione 1 2022-01-12 2 p1 g2_12 2 2022-01-12 3 p1 g3_12 3 2022-01-13 3 p1 g3_13 4 2022-01-12 4 p1 g4_12 5 2022-01-13 4 p1 g4_13 6 2022-01-14 4 p1 g4_14 RISULTATO idticket dataaggiornamento gruppodiassegnazione 1 2022-01-01 g1_01 2 2022-01-12 g2_12 3 2022-01-13 g3_13 4 2022-01-14 g4_14
Grazie mille!
E' stato un luuuuungo parto, ma alla fine sono riuscita ad adattare alla mia query facendola funzionare!
Ovviamente qui ho semplificato la situazione, quello che ora non riesco a fare è che ho bisogno di dati presenti solo nella tabella ticket, che ovviamente se metto nell'ultima select va in errore in quanto dopo non funziona più la union. Come posso fare?
Il codice che ho postato è il tuo, a cui ho aggiunto la visualizzazione di assegnato pers e la clausola WHERE chiuso='no' che però non funziona.codice:SELECT idticket, dataagg, (SELECT assegnatoruolo FROM ticket_agg t2 WHERE t1.idticket = t2.idticket AND t1.dataagg = t2.dataagg) assegnatoruolo, (SELECT assegnatopers FROM ticket_agg t2 WHERE t1.idticket = t2.idticket AND t1.dataagg = t2.dataagg) assegnatopers FROM ( SELECT idticket, MAX(dataagg) AS dataagg FROM ticket_agg GROUP BY idticket ) t1 UNION ALL SELECT idticket, dataapertura AS dataagg, assegnatoruolo, assegnatopers FROM ticket t1 WHERE chiuso='no' and idticket NOT IN ( SELECT idticket FROM ticket_agg t2 WHERE t1.idticket = t2.idticket ) ORDER BY idticket
.
Ultima modifica di marino51; 24-02-2022 a 23:57
scusa, ho visto ieri il nuovo post,
non so se hai risolto e ti rispondo,
mi sono perso con il cambio dei nomi delle colonne,
per cui ho mantenuto l'esempio originale,
aggiungendo le colonne "problema", "chiuso" e "tabella" ( quest'ultima per indicare la tabella da cui é prelevato l'elemento )
mi sembra che la query continui a funzionare bene,
posto la query modificata con interlinee per meglio comprenderla
ricorda che le due select in union devono avere lo stesso numero di colonne e ciascuna con lo stesso nomecodice:SELECT idticket , dataaggiornamento , ( SELECT gruppodiassegnazione FROM @aggiornamentiticket t2 WHERE t1.idticket = t2.idticket AND t1.dataaggiornamento = t2.dataaggiornamento ) gruppodiassegnazione , ( SELECT problema FROM @aggiornamentiticket t2 WHERE t1.idticket = t2.idticket AND t1.dataaggiornamento = t2.dataaggiornamento ) problema , 'A' as tabella FROM ( SELECT idticket , MAX(dataaggiornamento) AS dataaggiornamento FROM @aggiornamentiticket GROUP BY idticket ) t1 UNION ALL SELECT idticket , dataapertura AS dataaggiornamento , gruppodiassegnazione , problema , 'T' as tabella FROM @ticket t1 WHERE chiuso='no' and idticket NOT IN ( SELECT idticket FROM @aggiornamentiticket t2 WHERE t1.idticket = t2.idticket ) ORDER BY idticket;
Cattura.GIF
ID = 5 é duplicato da ticket 1 per provare "chiuso=no"
Ultima modifica di marino51; 25-02-2022 a 23:00
i nomi delle tabelle sono preceduti da @, ho dimenticato di toglierle prima di postare il codice, eliminale tu
nel mio db rappresentano tabelle temporanee per le prove
grazie e scusami per la dimenticanza