Announcement

Collapse
No announcement yet.

Problem mit View in IBX6

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

  • Problem mit View in IBX6

    Hallo,

    ich versuche einen View in IBX anzulegen und habe damit Schwierigkeiten. Der Code sieht folgendermassen aus:

    CREATE VIEW "GameScore" ("UserID", "SumOfPoints", "CountOfPoints") AS
    SELECT A."UserID", SUM(B."Points"), COUNT(B."Points")
    FROM "Users" A, "PointLog" B
    WHERE A."UserID" = B."UserID"
    GROUP BY "UserID"
    ORDER BY 2 DESC, 3 ASC;

    Wenn ich das SUM und COUNT weglasse und nur den Feldnamen angebe funktionierts. Ebenso wenn ich die Abfrage nur auf eine Tabelle mache, dann klappts auch mit SUM und COUNT. Desweiteren wird auch noch das ORDER nicht akzeptiert. Gibt es für Views irgentwelche Einschränkungen oder muss ich am Code was ändern.

    Gruss
    Ralf

  • #2
    Hallo,

    ja, sowohl der SQL-Standard als auch der InterBase 6 legen Einschränkungen fest, was in einem VIEW erlaubt ist und was nicht (siehe InterBase-Dokumentation). Zuerst würde ich prüfen, ob die SELECT-Abfrage (ohne View) über die IBConsole erfolgreich ausgeführt werden kann. Wenn ja, kann man diese Abfrage in eine <i>Stored Procedure</i> verpacken, denn dort gibt es im Gegensatz zu den VIEWs keine Einschränkungen

    Comment


    • #3
      1) Ich würde erstens die " weglassen

      2) Views können nicht sortiert werden

      3) welche user id soll er gruppieren und welche anzeigen, also preFix verwenden

      4) und mit join arbeiten also,

      create view GameScore (UserId, SumOfPoints, CountOfPoints)
      as
      select b.userid, count(b.points), count(b.points)
      from user a join PointLog b on a.userid=b.userid
      group by b.userid

      p.s. userid und point sind beide im PointLog wozu das join

      Comment

      Working...
      X