Announcement

Collapse
No announcement yet.

SQL Syntax bei gruppieren

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

  • SQL Syntax bei gruppieren

    Ich möchte nach folgendem benannten Feld gruppieren:

    SELECT Klassenjahrgang_Anfang + '/' + Klassenjahrgang_Ende as Jahrgang FROM "Schülerdaten.DB"

    Diese Anweisung funktioniert unter MS Access- SQL problemlos:

    SELECT [Klassenjahrgang_Anfang] & "/" & [Kalssenjahrgang_ende] AS Jahrgang <br>
    FROM Schülerdaten <br>
    GROUP BY [Klassenjahrgang_Anfang] & "/" & [Klassenjahrgang_Ende] <br>
    ORDER BY [Klassenjahrgang_Anfang] & "/" & [Klassenjahrgang_Ende] DESC; <br>

    <b>Welche Syntax gibt es dafür unter Delphi? </b>(Die Entwickler sollten sich mal den SQL- Builder von MS Access ansehen und sich schnell etwas einfallen lassen!)

  • #2
    <br>Hi,...
    <br>
    <br>SELECT Klassenjahrgang_Anfang + '/' + Kalssenjahrgang_ende AS <br>Jahrgang
    <br>FROM Schülerdaten
    <br>GROUP BY Klassenjahrgang_Anfang + '/' + Klassenjahrgang_Ende
    <br>ORDER BY Klassenjahrgang_Anfang + '/' + Klassenjahrgang_Ende DESC
    <br>
    <br>So sollte es eigentlich funktionieren (habe es nicht getestet, wegen fehlender Tabellenstruktur)
    <br>
    <br>wenn dem nicht so ist bitte melden ... habe noch eine andere Idee, wie man die Struktur mit dem "/" im Frontend realisieren kann.
    <br>
    <br>Ach ja der Acces Builder hat auch seine Schwächen: er produziert keinen Standard sql text.
    <br>
    <br>Aber es ist war so was fehlt irgendwie bei Delphi, und vor allem beim Interbase (zumindest habe ich so was dort noch nicht gefunden)
    <br>
    <br>mfg
    <br>P

    Comment


    • #3
      Hallo Patrick,
      diese Variante habe ich unter vielen auch schon versucht. Wenn ich die letzte Zeile lösche, weil da das "+" moniert wird, wird die Fehlermeldung "Merkmal nicht verfügbar" ausgegeben. Es geht sicher grundsätzlich darum, den zusammengesetzten Feldnamen (Klassenjahrgang_Anfang + '/' + Klassenjahrgang_Ende) so zu schreiben, daß er als ein Feldnamen angesehen wird (wie mit as Jahrgang). Access macht das mit den eckigen Klammern.
      Ich könnte die Paradox- Tabelle schicken, sind eh nur Testdaten drin

      Comment


      • #4
        Hallo,

        mit <b>Kalssen</b>jahrgang_ende und <b>Klassen</b>jahrgang_Ende hängt es nicht zusammen
        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


        • #5
          Nein, das ist nur ein klassischer schreibfehler, der würde sofort als unbekanntes Feld erkannt werden. Danke für den Hinweis

          Comment


          • #6
            <br>Hi,...
            <br>
            <br>@UMüller:
            <br>
            <br>Da habe ich noch eine Idee:
            <br>was passiert denn, wenn du das Select Statement als Abfrage in Access speicherst, und dann in delphi nicht den SQL Code ausführst, sondern die Access Abfrage startest? (sollte doch funktionieren)
            <br>
            <br>mfg
            <br>P

            Comment


            • #7
              Hallo Patrick,
              Dein Vorschlag wäre ein Lösungsansatz aber mit der Frage, inwieweit der Programmnutzer dann auch Access installiert haben muß. (Das ist auch ein wichtiger Grund, warum ich auf Delphi umgestiegen bin!

              Comment


              • #8
                Hallo,
                da jeder Provider bei SQL so ein bißchen sein eigenes Süppchen köchelt haben wir als Entwickler immer die lange Nase. Oracle würde den SQL String auch monieren aber dafür die Syntax <b>Klassenjahrgang_Anfang | '/' | Klassenjahrgang_Ende</b> akzeptieren. Alternativ gibt es für dafür auch die SQL-Funktion <b>Concat(string1, string2)</b>. Wie gesagt bei Oracle.

                Gruß Fal
                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


                • #9
                  Ich habe jetzt einen Alternativ- Vorschlag- die berühmte Krücke!:
                  Zunächst stelle ich mir in einer TQuery- Komponente das Feld mit den jeweiligen Feldinhalten zusammen: Feld1+ "/"+ Feld2. Mit einer 2. TQuery- Komponente frage ich Query1 ab und gruppiere. Wie greife ich auf die Query1 zu (Syntax), da ich wieder nichts dazu finde

                  Comment


                  • #10
                    Hallo,

                    sind die Felder Klassenjahrgang_Anfang und Klassenjahrgang_Ende Stringfelder? Mit Stringfeldern funktioniert das verketten und gruppieren nämlich.

                    Kann es sein das er sich über das Verketten von Numerischen und Stringwerten beschwert?

                    Gruß Fal
                    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


                    • #11
                      <br>Hi,...
                      <br>
                      <br>@UMüller:
                      <br>
                      <br>zu #6:
                      <br>
                      <br>mein Vorschlag galt unter der Vermutung, das du ADO verwendest. Aber anscheinend wird die BDE eingesetzt richtig?
                      <br>Bei der BDE weiß ich leider auch keinen Rat (wenn doch ADO verwendet wird, dann bitte nochmal melden)
                      <br>
                      <br>mfg
                      <br>P

                      Comment


                      • #12
                        Ich verwende Paradax- Tabellen, arbeite also mit der BDE.
                        Offensichtlich kann ich damit mein Vorhaben (und dabei ist es doch so einfach!!) nicht umsetzen.
                        Ich favorisiere nun meinen oben genannten Weg, in dem ich zunächst eine Query mit den zusammengesetzten Feldern bilde und die mit einer zweiten Query abfrage. Kann mir jemand sagen, wie ich dann diese bestehende Query abfrage (Syntax?

                        Comment

                        Working...
                        X