1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Zeitlücken ermitteln

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von IchHH, 14 Dezember 2018.

  1. IchHH

    IchHH Datenbank-Guru

    Moin Moin,

    ich suche gerade nach eine Idee wie ich die Zeilen 2, 25 und 27 angezeigt bekommen, weil diese bei den beiden (Members) eine Lücke zum letzten Ende darstellen. Wie mache ich das?

    Code:
    Zeile    Member    Von    Bis
    1    1    01.08.2011    09.09.2012
    2    1    13.09.2012    12.03.2013
    3    1    01.04.2013    31.10.2017
    4    1    01.11.2017    31.07.2018
    5    1    01.08.2018    01.01.2510
    6    2    01.12.2010    02.01.2011
    7    2    03.01.2011    31.03.2011
    8    2    01.04.2011    31.07.2011
    9    2    01.08.2011    31.03.2012
    10    2    01.04.2012    31.05.2012
    11    2    01.06.2012    14.06.2012
    12    2    15.06.2012    15.06.2012
    13    2    16.06.2012    31.08.2012
    14    2    01.09.2012    31.12.2012
    15    2    01.01.2013    30.06.2013
    16    2    01.07.2013    15.02.2014
    17    2    16.02.2014    02.03.2014
    18    2    03.03.2014    25.04.2014
    19    2    26.04.2014    31.08.2014
    20    2    01.09.2014    11.09.2014
    21    2    12.09.2014    28.02.2015
    22    2    01.03.2015    22.03.2015
    23    2    23.03.2015    30.04.2015
    24    2    01.05.2015    07.05.2015
    25    2    01.06.2015    31.07.2015
    26    2    01.08.2015    31.08.2015
    27    2    14.06.2016    26.09.2016
    28    2    01.01.2017    31.01.2017
    29    2    01.02.2017    02.07.2017
    
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Hrm. Hilft das weiter?

    Code:
    test=*# select * from ich_hh ;
     zeile | member |    von     |    bis     
    -------+--------+------------+------------
         1 |      1 | 2011-08-01 | 2012-09-09
         2 |      1 | 2012-09-13 | 2013-03-12
         3 |      1 | 2013-04-01 | 2017-10-31
         4 |      1 | 2017-11-01 | 2018-07-31
         5 |      1 | 2018-08-01 | 2510-01-01
         6 |      2 | 2010-12-01 | 2011-01-02
         7 |      2 | 2011-01-03 | 2011-03-31
         8 |      2 | 2011-04-01 | 2011-07-31
         9 |      2 | 2011-08-01 | 2012-03-31
        10 |      2 | 2012-04-01 | 2012-05-31
        11 |      2 | 2012-06-01 | 2012-06-14
        12 |      2 | 2012-06-15 | 2012-06-15
        13 |      2 | 2012-06-16 | 2012-08-31
        14 |      2 | 2012-09-01 | 2012-12-31
        15 |      2 | 2013-01-01 | 2013-06-30
        16 |      2 | 2013-07-01 | 2014-02-15
        17 |      2 | 2014-02-16 | 2014-03-02
        18 |      2 | 2014-03-03 | 2014-04-25
        19 |      2 | 2014-04-26 | 2014-08-31
        20 |      2 | 2014-09-01 | 2014-09-11
        21 |      2 | 2014-09-12 | 2015-02-28
        22 |      2 | 2015-03-01 | 2015-03-22
        23 |      2 | 2015-03-23 | 2015-04-30
        24 |      2 | 2015-05-01 | 2015-05-07
        25 |      2 | 2015-06-01 | 2015-07-31
        26 |      2 | 2015-08-01 | 2015-08-31
        27 |      2 | 2016-06-14 | 2016-09-26
        28 |      2 | 2017-01-01 | 2017-01-31
        29 |      2 | 2017-02-01 | 2017-07-02
    (29 rows)
    
    test=*# select *, von - lag(bis) over (partition by member order by zeile) from ich_hh ;
     zeile | member |    von     |    bis     | ?column?
    -------+--------+------------+------------+----------
         1 |      1 | 2011-08-01 | 2012-09-09 |         
         2 |      1 | 2012-09-13 | 2013-03-12 |        4
         3 |      1 | 2013-04-01 | 2017-10-31 |       20
         4 |      1 | 2017-11-01 | 2018-07-31 |        1
         5 |      1 | 2018-08-01 | 2510-01-01 |        1
         6 |      2 | 2010-12-01 | 2011-01-02 |         
         7 |      2 | 2011-01-03 | 2011-03-31 |        1
         8 |      2 | 2011-04-01 | 2011-07-31 |        1
         9 |      2 | 2011-08-01 | 2012-03-31 |        1
        10 |      2 | 2012-04-01 | 2012-05-31 |        1
        11 |      2 | 2012-06-01 | 2012-06-14 |        1
        12 |      2 | 2012-06-15 | 2012-06-15 |        1
        13 |      2 | 2012-06-16 | 2012-08-31 |        1
        14 |      2 | 2012-09-01 | 2012-12-31 |        1
        15 |      2 | 2013-01-01 | 2013-06-30 |        1
        16 |      2 | 2013-07-01 | 2014-02-15 |        1
        17 |      2 | 2014-02-16 | 2014-03-02 |        1
        18 |      2 | 2014-03-03 | 2014-04-25 |        1
        19 |      2 | 2014-04-26 | 2014-08-31 |        1
        20 |      2 | 2014-09-01 | 2014-09-11 |        1
        21 |      2 | 2014-09-12 | 2015-02-28 |        1
        22 |      2 | 2015-03-01 | 2015-03-22 |        1
        23 |      2 | 2015-03-23 | 2015-04-30 |        1
        24 |      2 | 2015-05-01 | 2015-05-07 |        1
        25 |      2 | 2015-06-01 | 2015-07-31 |       25
        26 |      2 | 2015-08-01 | 2015-08-31 |        1
        27 |      2 | 2016-06-14 | 2016-09-26 |      288
        28 |      2 | 2017-01-01 | 2017-01-31 |       97
        29 |      2 | 2017-02-01 | 2017-07-02 |        1
    (29 rows)
    
    test=*#
    
     
  3. IchHH

    IchHH Datenbank-Guru

    Nicht für diesen Fall aber grundsätzlich schon weil ich was dazu gelernt habe und da bestimmt noch mal anwenden kann. Danke.
     
    akretschmer gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden