Announcement

Collapse
No announcement yet.

SQL Abfrage

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

  • SQL Abfrage

    Hallo,

    ich habe eine Spalte in der drei versch. Werte stehen können (1,2,3) nun möchte ich mit einer SQL Abfrage herausfinden wieviel zeilen den wert 1 haben, wieviel den wert2 und wieviel wert3.

    Wie mache ich das am schlausten?

    Ich will der Ergebnis aber nicht in der Form

    <pre>.a 110
    .b 200
    .c 563</pre>

    Sondern

    110 200 563

    Also in einer Reihe, damit ich es weiter ausbauen kann.

    Ich habe eine String, der ein Ergebnis liefert und in dieses eine Ergebnis sollen diese drei Werte mit rein.
    Ansonsten habe ich eine zusätzlich DB Abfrage. Da ich diese Abfrage aber mehrfach hintereinander ausführen muss, ist es schon ein entscheidender Unterschied ob ein oder zwei Abfragen!

  • #2
    Hallo Sven,

    Du kriegst das in eine Reihe, wenn Du auf Deine Tabelle in einer Abfrage 3-mal zugreifst. Also z.B.:

    <PRE>
    select x, y, z from
    (select count(*) x from ubtst where spalte = '1'),
    (select count(*) y from ubtst where spalte = '2'),
    (select count(*) z from ubtst where spalte = '3');
    </PRE>

    Gruß
    Usch

    Comment


    • #3
      Hallo Uschi,

      habe jetzt folgende Abfrage aber kriege immer eine Fehlermeldung.
      Irgendwie fehlt mir das Verständnis ... kannst Du nochmal helfen?

      Danke!

      <pre>SELECT vz, mz, kz FROM
      ( SELECT count( * ) vz FROM pp_tagmeld WHERE etyp = 'Vollzeit' ),
      ( SELECT count( * ) kz FROM pp_tagmeld WHERE etyp = 'Kernzeit' ),
      ( SELECT count( * ) mz FROM pp_tagmeld WHERE etyp = 'Mittelzeit' );</pre&gt

      Comment


      • #4
        was sagt die Fehlermeldung

        Comment


        • #5
          You have an error in your SQL syntax near 'SELECT count( * ) vz FROM pp_tagmeld WHERE etyp = 'Vollzeit' ), ( SELECT cou' at line 1

          Muss vielleicht hinzufügen, dass ich mit MySQL arbeite

          Comment


          • #6
            MySqql benutze ich sonst nicht, aber probier mal die ausführlichere Syntax mit alias-Zuweisung mit as und Alias für den Select in der From-Clause:

            <PRE>
            SELECT t1.vz, t3.mz, t2.kz FROM
            ( SELECT count(*) as vz FROM pp_tagmeld WHERE etyp = 'Vollzeit' ) t1,
            ( SELECT count(*) as kz FROM pp_tagmeld WHERE etyp = 'Kernzeit' ) t2,
            ( SELECT count(*) as mz FROM pp_tagmeld WHERE etyp = 'Mittelzeit' ) t3;

            </PRE&gt

            Comment


            • #7
              nein leider nicht ... selbe Fehlermeldung ...schade :

              Comment


              • #8
                Hallo Sven,<BR>
                es ist natürlich nicht unwichtig, welche Datenbank du benutzt.<BR>
                Normalerweise sollte es folgendermassen funktionieren:<BR>
                SELECT<BR>
                (SELECT count(*) FROM pp_tagmeld WHERE etyp='Vollzeit') as t1,<BR>
                (SELECT count(*) FROM pp_tagmeld WHERE etyp='Kernzeit') as t2,<BR>
                (SELECT count(*) FROM pp_tagmeld WHERE etyp='Mittelzeit') as t3<BR>
                from dummyTable<BR>
                Dabei brauchst Du eine Tabelle mit einem Datensatz, da dann das Ergebnis genau ein mal geliefert wird.<BR>
                Ich arbeite meist mit Interbase und würde dafür eine procedure schreiben.<BR>
                Gruss, Fran

                Comment


                • #9
                  Hallo Frank,
                  damit geht es leider auch nicht !?!

                  Naja wenn noch jemand eine Idee hat dann würde ich mich riesig
                  freuen ... ansonsten muss ich momentan leider mit der zusätzlichen
                  Abfrage leben

                  THX Sve

                  Comment


                  • #10
                    Hallo Sven,

                    ich habe gestern unter mySQL einen Eintrag gefunden, daß MySQL keine SubQueries kennt, aber eventuell in einer späteren Version . Damit scheitern also die Lösungen von Frank und mir. Vielleicht gibt es aber schon eine Version, die das kann. Stell die Frage mal im Forum neben an.

                    Gruß
                    Usch

                    Comment

                    Working...
                    X