none
Problema su aggiornamento al volo di una CTE RRS feed

  • Domanda

  • Ciao a tutti,
    non mi riesce di sistemare questa CTE:

    SELECT EventiInOutParMinTec_ID,
    CASE WHEN EventiInOutParMinTec_ID = 1053833 THEN '2012-06-14 20:31:00.000'
    ELSE DataOra
    END AS DataOra,
    Gruppi_ID, CodiceEvento, 
    ROW_NUMBER() OVER (ORDER BY DataOra) rownum FROM app.T_EventiInOut
    WHERE Gruppi_ID = 462

    Il punto è che prima di estrarre la CTE stesso, devo updatare "al volo" il campo DataOra
    di una certo ID, mentre la funzione ROW_NUMBER() si basa sui valori "già" presenti
    nella tabella, con il risultato che non mi esce la Select correttamente ordinata per data.

    E' possibile risolvere questa situazione?

    Grazie

    Luigi

     

    venerdì 7 settembre 2012 09:58

Risposte

  • salve,

    devi "duplicare" l'operazione di aggiornamento, portandola anche dentro l'operazione di windowing, similarmente a

    ..., ROW_NUMBER() OVER (ORDER BY CASE WHEN EventiInOutParMinTec_ID = 1053833 THEN '2012-06-14 20:31:00.000' ELSE DataOra END) AS rownum , ......

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/

    • Contrassegnato come risposta Ciupaz sabato 8 settembre 2012 12:04
    venerdì 7 settembre 2012 20:19
    Moderatore

Tutte le risposte

  • salve,

    devi "duplicare" l'operazione di aggiornamento, portandola anche dentro l'operazione di windowing, similarmente a

    ..., ROW_NUMBER() OVER (ORDER BY CASE WHEN EventiInOutParMinTec_ID = 1053833 THEN '2012-06-14 20:31:00.000' ELSE DataOra END) AS rownum , ......

    saluti


    http://www.asql.biz - DbaMgr2k - DbaMgr and further SQL Tools http://www.hotelsole.com/

    • Contrassegnato come risposta Ciupaz sabato 8 settembre 2012 12:04
    venerdì 7 settembre 2012 20:19
    Moderatore
  • Grazie Andrea, non sapevo che si potesse fare questo.
    Così va bene.

    Luigi

    sabato 8 settembre 2012 12:04