Announcement

Collapse
No announcement yet.

Select Anweisung in Oracle

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

  • Select Anweisung in Oracle

    Code:
    select raum.name, sum((bis_stunde+(bis_minute/60))-(von_stunde+(von_minute/60))) as Stunden from raum, abhaltung
    where raum.raum_id=abhaltung.raum_id
    group by raum.name
    order by stunden desc
    Ich möchte aus dieser liste nun nur die Datensätze ausgeben wo bei der sum() funktion mehr als 800 rauskommt. wenn ich aber in der where klausel
    Code:
    and Stunden >800
    hinzufüge geht das nicht.
    wie löse ich das problem?

  • #2
    Versuche es mal über eine SUBQUERY, etwa so:
    Code:
    SELECT * FROM
      (select raum.name, sum((bis_stunde+(bis_minute/60))-(von_stunde+(von_minute/60))) as Stunden from raum, abhaltung
        where raum.raum_id=abhaltung.raum_id
        group by raum.name)
    WHERE stunden>800

    Comment


    • #3
      Hallo,

      ich denke mal ein einfaches
      [highlight=sql]
      ...
      HAVING sum((bis_stunde+(bis_minute/60))-(von_stunde+(von_minute/60))) > 800
      [/highlight]
      sollte reichen.

      Aggregierte Werte werden über HAVING und nicht über die WHERE-Klausel eingeschränckt.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment

      Working...
      X