Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    Quote Originariamente inviata da softecparma Visualizza il messaggio
    Sembra funzionare! Fantastico!
    Cercher� di studiarmi cosa fa esattamente la query
    Grazie mille!
    non sapevo se avevi gi� risolto, questa � una versione rivista e corretta che lavora meglio,
    Codice PHP:
    WITH t1 AS
    (
      
    select BatchLocalTimeColStateCurrent,
      
    ROW_NUMBER() OVER (ORDER BY BatchLocalTimeCol) AS myRank
      from tabella
    ),
    t2 as
    (
      
    select BatchLocalTimeColStateCurrentmyRank,  TakeIt
      from
      
    (
        
    select t1.Batcht1.LocalTimeColt1.StateCurrentt1.myRank,
        CASE 
    WHEN t1a.StateCurrent t1.StateCurrent THEN 0 ELSE 1 END as TakeIt
        FROM t1
        FULL OUTER JOIN t1 
    as t1a ON t1.myRank t1a.myRank 1
      
    t3
      where StateCurrent is not null 
      
    and   ( TakeIt or myRank = ( select max(myRankfrom t1 ) )
    )
    select 
      t2
    .Batch,
      
    t2.LocalTimeCol as Dalle,
      
    min(t2a.LocalTimeCol) as Alle,
      
    t2.StateCurrent
    from t2
    inner join t2 
    as t2a ON t2.Batch=t2a.Batch and t2a.myRank t2.myRank
    group by t2
    .Batcht2.LocalTimeColt2.StateCurrent
    order by t2
    .Batcht2.LocalTimeColt2.StateCurrent 
    risultato,
    Batch Dalle Alle StateCurrent
    719664 2017-02-17 13:10:50.000 2017-02-17 13:11:00.000 18
    719664 2017-02-17 13:11:00.000 2017-02-17 13:11:10.000 0
    719664 2017-02-17 13:11:10.000 2017-02-17 13:12:10.000 6
    719664 2017-02-17 13:12:10.000 2017-02-17 13:12:20.000 18
    719664 2017-02-17 13:12:20.000 2017-02-17 13:12:30.000 6

    il funzionamento � relativamente semplice, delle 4 select lavorano nell'ordine,
    la prima seleziona i record aggiungendo il rank ovvero numerandoli progressivamente
    la terza identifica, dal set precedente, i record da utilizzare con la colonna TakeIt
    la seconda prende i record "TakeIt" + l'ultimo
    la quarta associa la data "Alle" usando il rank opportunamente

    ps forse non sono necessari i confronti sulla colonna batch, perch�
    probabilmente batch diversi possono contenere comunque LocalTimeCol successive
    Ultima modifica di marino51; 28-02-2017 a 16:38 Motivo: aggiunta spiegazione

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.