Announcement

Collapse
No announcement yet.

Hilfe bei SQL Abfrage

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

  • Hilfe bei SQL Abfrage

    Hallo,<br>ich benötige das Select Statment für folgende Abfrage:<br>Es gibt drei Felder in einem Datensatz :Timestamp, Ort, Nr<br>Ich benötige nun alle Datensätze, in denen die Nr gleich ist und der Ort unterschiedlich ist.<br>Als Ergebnis möchte ich demnach die verschiedenen Orte zu einer gleichen Nr erhalten.<br>Ich bekomme es einfach nicht hin *haarausfallbekomm*<br><br>Danke, Michael

  • #2
    select distinct Ort, Nr from table ...<BR><BR>
    Fran

    Comment


    • #3
      ...<br>die Nr muss aber an verschiedenen Orten vorhanden sein!<br><br>:-) Michae

      Comment


      • #4
        Hallo,<br>das wäre zu einfach Frank :-)<br>
        Die Nr muss an verschiedenen Orten vorhanden sein.<br><PRE>
        2004-01-01 01:00:00 ; ORT-1 ; 100
        2004-01-01 02:00:00 ; ORT-1 ; 100
        2004-01-02 01:00:00 ; ORT-2 ; 100
        2004-01-03 01:00:00 ; ORT-3 ; 200
        2004-01-04 01:00:00 ; ORT-4 ; 300
        </PRE>Bei diesen Beispielsätzen muss das Ergebnis ORT-1 und Ort-2 sein, da die Nr "100" an beiden vorhanden ist.<br>Ich hatte es wie folgt probiert:<br> Query.sql.add('select count(*),NR from daten GROUP BY NR having count(NR) > 1 ');
        <br>Dadurch bekomme ich aber lediglich mehrfach (>1) vorhandene Nr als Ergebnis. Unberücksichtigt ist aber, dass die Nr an verschiedenen (min 2) Orten sein muss.<br>Michae

        Comment


        • #5
          Hey Michael,<BR><BR>
          dann kann ich die Haare wohl nicht retten. ;-)<BR><BR>
          Nun kommt es natürlich noch auf die verwendete DB an. Ohne Subselect sehe ich keinen Weg.<BR>
          Bei Firebird würde ich es wie folgt machen:
          <PRE>
          select distinct nr, ort from tabelle t1
          where (select count(distinct ort) from tabelle t2 where t2.nr = t1.nr) > 1
          </PRE>
          Gruß, Fran

          Comment


          • #6
            Hi Frank,<br>benutze in diesem Fall MYSQl, sollte umzusetzen sein :-)<br><br>Michae

            Comment


            • #7
              Hi Frank,<br>
              NIE MEHR HAARAUSFALL ;-)<br>Ich habe es folgendermassen in MYSQL lösen können:<PRE>
              ZMySqlQuery1.sql.add('select distinct t1.ort, t1.NR from daten t1 LEFT JOIN daten t2 ' +
              'on (t2.ort <> t1.ort) where (t2.NR = t1.NR) group by t1.NR, t1.ort' );
              </PRE><br>funktioniert gut, Danke für den Tip... Michae

              Comment

              Working...
              X