Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#19

AW: SQLite - Select mit mehreren Tabellen

  Alt 17. Mär 2014, 17:17
SQL-Code:
SELECT
  1 as Feld,
  SUM(x.tmp) as tmp
FROM
  (
      SELECT
          w.weight, s.name, SUM(g.grade*w.weight)/COUNT(*))/100 AS tmp
      FROM
          grades g
              JOIN subjects s ON s.recno = g.subject
              JOIN weights ON w.recno = g.weight
      GROUP BY
          w.weight, s.name
) x
GROUP BY
  x.Feld;
Und immer noch wird die Exception "Operation wird nicht unterstüzt" ausgelöst. Aber dann glaube ich ihm halt mal, dass die Operation nicht unterstüzt wird... SQLite ist eben
wirklich 'SQL light' [zumindest unter iOS]
Ohne Subselect funktionierts.
Das ist jetzt aber nicht weiter schlimm, muss halt alles weitere in Delphi ausführen, kosten auch nicht soo viel mehr Zeit.
Das Group By wird so auch nicht unbedingt unterstüzt. Ich weiß nicht, ob das in jedem System so ist, aber der vergebene Alias "Feld" ist dem Group by nicht unbedingt bekannt, da er nicht aus der FROM Quelle kommt, sondern erst danach im Select Statement erzeugt wird.
An dieser Stelle kann man im Group By statt der Feldnamen höchstens mit den Feldnummern des Select Statements arbeiten. Hier zufällig die "1" als Konstante, entsprechend Feldnummer 1.

Das ist zumindest nich nur bei "light" Systemen so.

Group by sähe also eher so aus:
Code:
group by 1;
Gruß, Jo
  Mit Zitat antworten Zitat