Announcement

Collapse
No announcement yet.

Gleiche Datensätze markieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gleiche Datensätze markieren

    Ich hab eine Stored Procedures in der ich von mehreren Tabellen Datensätze zusammen stelle.
    Da ich die Daten aber Chronologisch darstelle, möchte ich Datensätze die von der Gleichen PersonenId kommen mit Buchstaben kennzeichnen um es visuell besser dazustellen.
    Also eine Spalte hinzufügen wo alle Datensätze der ersten PersonenId ein A haben und so weiter.

    Ich hoffe Ihr könnt mir helfen Danke

  • #2
    Originally posted by sixpence78 View Post
    Ich hab eine Stored Procedures in der ich von mehreren Tabellen Datensätze zusammen stelle.
    Da ich die Daten aber Chronologisch darstelle, möchte ich Datensätze die von der Gleichen PersonenId kommen mit Buchstaben kennzeichnen um es visuell besser dazustellen.
    Also eine Spalte hinzufügen wo alle Datensätze der ersten PersonenId ein A haben und so weiter.

    Ich hoffe Ihr könnt mir helfen Danke
    Code:
    test=*# select * from sixpence78 ;
     person_id |   datum
    -----------+------------
             1 | 2012-01-01
             1 | 2012-08-01
             1 | 2012-09-01
             2 | 2012-02-01
             2 | 2012-03-01
             3 | 2012-04-01
             3 | 2012-08-01
    (7 rows)
    
    test=*# select *, chr(64+person_id) from sixpence78 order by datum;
     person_id |   datum    | chr
    -----------+------------+-----
             1 | 2012-01-01 | A
             2 | 2012-02-01 | B
             2 | 2012-03-01 | B
             3 | 2012-04-01 | C
             1 | 2012-08-01 | A
             3 | 2012-08-01 | C
             1 | 2012-09-01 | A
    (7 rows)
    So?

    Andreas

    Comment


    • #3
      Originally posted by akretschmer View Post
      Code:
      test=*# select * from sixpence78 ;
       person_id |   datum
      -----------+------------
               1 | 2012-01-01
               1 | 2012-08-01
               1 | 2012-09-01
               2 | 2012-02-01
               2 | 2012-03-01
               3 | 2012-04-01
               3 | 2012-08-01
      (7 rows)
      
      test=*# select *, chr(64+person_id) from sixpence78 order by datum;
       person_id |   datum    | chr
      -----------+------------+-----
               1 | 2012-01-01 | A
               2 | 2012-02-01 | B
               2 | 2012-03-01 | B
               3 | 2012-04-01 | C
               1 | 2012-08-01 | A
               3 | 2012-08-01 | C
               1 | 2012-09-01 | A
      (7 rows)
      So?

      Andreas
      Ähm, falls die person_id jetzt nicht mit 1,2,3, ... läuft sondern Lücken hat oder größere Werte hat:

      Code:
      test=*# select * from sixpence78 ;
       person_id |   datum
      -----------+------------
               1 | 2012-01-01
               1 | 2012-08-01
               1 | 2012-09-01
               2 | 2012-02-01
               2 | 2012-03-01
               3 | 2012-04-01
               3 | 2012-08-01
            1001 | 2012-08-01
            1001 | 2012-09-01
            1001 | 2012-09-03
      (10 rows)
      
      test=*# select a.*, chr(64+foo.my_count::int) from sixpence78 a left join (select person_id, row_number() over() as my_count from (select distinct person_id from sixpence78 order by person_id) bla) foo on a.person_id=foo.person_id;
       person_id |   datum    | chr
      -----------+------------+-----
               1 | 2012-01-01 | A
               1 | 2012-08-01 | A
               1 | 2012-09-01 | A
               2 | 2012-02-01 | B
               2 | 2012-03-01 | B
               3 | 2012-04-01 | C
               3 | 2012-08-01 | C
            1001 | 2012-08-01 | D
            1001 | 2012-09-01 | D
            1001 | 2012-09-03 | D
      (10 rows)
      Andreas

      Comment


      • #4
        Man du bist schnell. Danke Super

        Genau das zweite brauch ich.

        Danke

        Comment

        Working...
        X