Group Function

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Group Function

    Wenn diese Thema schon behandelt würde, -> 1000 apologies ;-)

    Ich möchte zwei colums miteinander vergeleichen und das MAX bzw Min bekommen. Habe schon in Mysql Docu durchgeschaut, aber ohne erfolg. Meine Abfrage zielt auf 2 Spalten in einer table eine ist "plan termin" die andere ist "ist termin".

    So sieht die Abfrage aus-> dann bekomme ich auch die jeweilige min, aber ich möchte davon auch die Min haben bitte um hilfe.

    SELECT min(`plan_datum`)as ist ,min(`ist_datum`) as plan FROM `ms_vs_projekt` where `id_projekt`=5 and `relavant`='Y' and `ist_datum`!='0000-00-00' and `plan_datum`!='0000-00-00';

    gibt es die Möglichkeit die Datums felder zu vergleichen. Und wo ich gerade dabei bin ;-) noch ne Frage.
    Ich möchte an hand diese Abfrage Start Datum bekommen und dann mit ein Max abfrage end Datum bekommen und dann will ich für die monaten da zwichen liegen eine schleife bauen.
    BSP: Nehmen wir mal an da Min datum 2005-04-21 ergibt
    Max Datum 2007-11-23 ergibt => es liegt ja
    in 2005 8 monaten
    in 2006 12 monaten
    in 2007 11 monaten => gibt es eine einfachere möglichkeit diese daten herauszufinden. (Ziel ist, eine dynamische monts kette für diesen Zeitraum zu erzeugen)

    PS: My German is really bad, do excuse it ;-)
    Thank you in advance

  • #2
    ohne garantie .... hab ja schliesslich nicht mehr infos von dir...

    Code:
    SELECT
        MIN(p1.plan_datum) as ist,
        MIN(p2.ist_datum) plan
    FROM 
        ms_vs_projekt p1
            INNER JOIN ms_vs_projekt p2
              ON (p1.id_projekt = p2.id_projekt AND
                  id_projekt = 5)
    WHERE
        p1.relavant   = 'Y' AND
        p1.ist_datum  != '0000-00-00' AND
        p1.plan_datum != '0000-00-00';
    deinen zweiten habe ich nicht verstanden. sehr verwirrend geschrieben.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Vielen Danke,
      Das zieht gut aus (denke ich) , ich habe aber eine frage zur deiner Lösung
      "MIN(p1.plan_datum) as ist" => was ist here bei dir p1?

      * ich weiss nicht ob ich es gut erklärt habe. Es gibt eine Tabelle wo ua. auch zwei spalten (plan_datum,ist_datum) existiert. und von diese beide spalten will ich die MIN datum herausfiltern bzw. in dem zweiten Abfrage nachdem selben Methode bekomme ich ja "Max Datum".

      Wegen 2te teil der Frage:

      Nachdem ich durch die obere Lösung ein "Min datum" herausbekommen habe, dann kann ich nach dem gleichen Verfahren auch ein "Max Datum" heraus bekommen.

      "Min Datum" wird mein Start Datum und "Max Datum" wird mein end datum. Und dannach will ich der user ein Monatskette anbieten wo er verschiedene einträge machen kann. (etwas wie ein Dynamische Monats-Balkan)
      => in meinem Beispiel habe ich (Annahme)
      "Min datum"== 2005-04-21 ergibt
      "Max Datum"== 2007-11-23 ergibt

      Dann liegt die Untern angegeben Monaten:
      in 2005 8 monaten
      in 2006 12 monaten
      in 2007 11 monaten

      => dass bedeutet ich möchte hier jetzt eine tabelle erzeugen der mit März (2004) anfängt und November(2007) endet => summe der Spalten==8+12+11

      Ist es jetzt ein wenig klar geworden

      Kommentar


      • #4
        Lösung für die ersteteil

        Hi,

        Ich habe die Abfrage hinbekommen (wie ich es wollte)

        SELECT min( START_DATUM.A )
        FROM (

        SELECT MIN( plan_datum ) AS A
        FROM ms_vs_projekt
        WHERE relavant = 'Y'
        AND ist_datum != '0000-00-00'
        AND plan_datum != '0000-00-00'

        UNION

        SELECT MIN( ist_datum ) AS A
        FROM ms_vs_projekt
        WHERE relavant = 'Y'
        AND ist_datum != '0000-00-00'
        AND plan_datum != '0000-00-00'
        )
        START_DATUM

        so bekomme ich das Min Datum von zwei spalten.

        So jetzt sollte ich eine Lösung für die Monatskette überlegen.



        Gibt es eine einfache möglichkeit den Difference zwichen zwei Datums felder zu ermitteln?
        BSP:
        Start Datum 2005-08-23
        End Datum 2007-11-19 => Ich will wissen wie viele Monaten es zwichen Lliegt?

        Eine Idee???

        Greets
        Zuletzt geändert von rldesilva; 24.11.2005, 10:23.

        Kommentar


        • #5
          Durchsuche mal http://dev.mysql.com/doc/refman/5.0/...functions.html nach 'diff'.

          Kommentar


          • #6
            danke
            Werde mal durchlesen..

            Kommentar

            Lädt...
            X