Announcement

Collapse
No announcement yet.

Select mit Group By und TIMESTAMP (IB 6)

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

  • Select mit Group By und TIMESTAMP (IB 6)

    Hallo,

    ich habe einige Probleme beim Bilden der richtigen select Anweisung.
    Ich habe eine Tabelle die Timeouts eines Gerätes speichert.

    ID
    GERAET_ID
    DATETIME_FROM
    DATETIME_TILL

    Über ein select möchte ich folgende Werte bekommen:

    GEARAET_ID
    MONAT (extract MONTH from DATETIME_FROM)
    TIMEOUT_MINUTES (sum(DATETIME_TILL - DATETIME_FROM))

    Ich habe bereits folgendes SQL - Statement probiert (geht aber nicht):

    select extract(MONTH from a.DATETIME_FROM), sum(a.DATETIME_TILL-a.DATETIME_FROM) from T_TABLE a
    where (a.DATETIME_FROM between '01.01.2006 00:00' and '31.12.2006 23:59')
    group by extract(MONTH from a.DATETIME_FROM)

    auf der Seite: http://www.ibphoenix.com/main.nfs?a=...60_sql_date_fs habe ich
    gelesen, das group by nicht mit TIMESTAMP geht. Mit einem cast DATETIME_FROM as DATE ging es aber auch nicht.

    Bin für jeden Hinweis dankbar.

  • #2
    Du gruppierst ja nicht über einen Timestamp sondern über den Monat
    Code:
    select
         extract(MONTH from a.DATETIME_FROM) MONAT,    
         sum(a.DATETIME_TILL-a.DATETIME_FROM)  TIMEOUT_MINUTES
    from 
         T_TABLE a
    where 
        EXTRACT( YEAR from a.DATETIME_FROM) = 2006  
    group by 
    extract(MONTH from a.DATETIME_FROM)
    Für de Summierung könnte man auch eine Zeit-UDF verwenden

    Comment


    • #3
      Ich möchte ja auch über den Monat gruppieren.
      Extract geht anscheinend nicht in einer group by?!?

      Comment


      • #4
        Ich arbeite mit FB dort geht es. Wenn es in IB wirklich nicht geht, könntest du eine weitere Spalte einfügen in die du automatisch per Trigger den Monat eintragen lässt.

        Comment


        • #5
          Danke erst mal für die Antwort.
          In FB scheint es zu funktionieren (hab ich gerade mal getestet). In IB geht es halt nicht. Das "zusätzliche Feld" Monat werde ich dann wahrscheinlich über einen View/SP realisieren, und dann darüber das group by machen.
          Oder ist ein richtiges Tabellenfeld doch die bessere Variante?

          Comment


          • #6
            Was meinst du mit richtigem Tabellenfeld?

            Comment


            • #7
              "richtiges Feld" = Die Tabelle um das Feld Monat erweitern und dieses via Trigger füllen.

              "falsches Feld" = Die Spalte Monat über einen View/SP realisieren.

              Comment

              Working...
              X