Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Li voglio tutti!

  2. #12
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie lunedi provo!

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    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

  4. #14
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    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?

    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
    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.

  5. #15
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    .
    Ultima modifica di marino51; 24-02-2022 a 23:57

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    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
    codice:
    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;
    ricorda che le due select in union devono avere lo stesso numero di colonne e ciascuna con lo stesso nome


    Cattura.GIF

    ID = 5 é duplicato da ticket 1 per provare "chiuso=no"
    Ultima modifica di marino51; 25-02-2022 a 23:00

  7. #17
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    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

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.