1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Datentyp und Summe??

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von freshman, 14 Juli 2011.

  1. freshman

    freshman Datenbank-Guru

    Guten Morgen, ich habe eine csv Datei, diese importiere ich in MS SQL Server 2008.
    Dazu die erste Frage: Welchen Datentypen nehme ich am besten für Zeitangabe, nicht Uhrzeit!
    Zeitenagabe = Stunden:Minuten:Sekunden

    Sprich, Tabelle sieht nachher so aus:

    Name TelNr Gesprächsdauer
    ________________________
    Dirk 111 00:12:24
    Thoma 222 01:13:55
    Andre 222 00:56:01
    Dirk 111 02:02:36

    Und nun möchte ich eine Abfrage erstellen, in der mir die Summe Gesprächsdauer von 'Dirk' angezeigt wird.
    Also:
    Welcher ist der Richtige Datentyp für Spalte 'Gesprächsdauer'?
    Und wie bekomme ich die Summenbildung 'Gesprächsdauer' hin?

    Danke
     
  2. freshman

    freshman Datenbank-Guru

    Ziehe einen Teil der Frage zurück,
    Datentyp ist time(0), die NULL steht für 0 Bruchteile einer Sekunde...
    Aber wie gestalte ich die Abfrage für die Summenbildung, da hampel ich immer noch mit rum
    DANKE
     
  3. ukulele

    ukulele Datenbank-Guru

    SELECT sum(gespraechsdauer) FROM tabelle
     
  4. freshman

    freshman Datenbank-Guru

    :)
    das hatte ich auch schon probiert, aber Microsoft sagt mir:

    Meldung 8117, Ebene 16, Status 1, Zeile 7
    Der Operanddatentyp time ist für den sum-Operator ungültig.
     
  5. ukulele

    ukulele Datenbank-Guru

    Vieleicht ist das der Grund warum keine Datenbank die ich kenne time nutzt sondern float :)
     
  6. freshman

    freshman Datenbank-Guru

    Nun ha ich den Datentyp in float geändert...
    musste vorher die Tabell leeren.
    Will dann die csv neu importieren, bekomme die Meldung:
    Datenkonvertierungsfehler beim Massenladen (Typenkonflikt oder ungültiges Zeichen für die angegebene Codepage) für 2-Zeile, 5-Spalte (GespDauer)

    kann float nicht mit Daten: 01:13:55
    ???
     
  7. ukulele

    ukulele Datenbank-Guru

    Nein, float ist eine Gleitkommazahl. Du musst das schon vorher umrechnen.
     
  8. freshman

    freshman Datenbank-Guru

    Alos meinst, vor Import umrechnen, oder erst importieren (als time) und dann zur weiteren Berchnung umrechnen???
     
  9. ukulele

    ukulele Datenbank-Guru

    Wird wohl beides möglich sein. Mein SQL 2008 unterstützt scheinbar kein TIME(0) als Datentyp
     
  10. akretschmer

    akretschmer Datenbank-Guru

    Um mal eine Triviallösung zu zeigen:

    Code:
    test=*# create table telefon(i int, dauer interval);
    CREATE TABLE
    Time: 1,109 ms
    test=*# insert into telefon values(1, '00:10:12');
    INSERT 0 1
    Time: 0,388 ms
    test=*# insert into telefon values(1, '01:25:35');
    INSERT 0 1
    Time: 0,172 ms
    
    test=*# select i, sum(dauer) from telefon group by i;
     i |   sum
    ---+----------
     1 | 01:35:47
    (1 row)
    
    Ich weiß nicht, welche Datenbanken diesen Typ, also INTERVAL, anbieten, PG hat ihn aber.


    Andreas
     
Die Seite wird geladen...

Diese Seite empfehlen