Problem bei Berechnung in Abfrage

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

  • Problem bei Berechnung in Abfrage

    Hi,

    habe eine mysql-DB welche folgende 4 Tabellen + (primary keys) enthält:

    industry (industry_sector_id)
    companies (company_id (autoincrement))
    balance_sheet (company_id, year)
    profit_loss (company_id, year)


    Möchte den jährlichen ROI berechnen einer Company mit dieser Abfrage:

    PHP-Code:
    SELECT 
      profit_loss
    .profit_loss_before_tax balance_sheet.total_assets AS roi,
      
    balance_sheet.`year`,
      
    companies.company_name
    FROM
      balance_sheet
    ,
      
    companies,
      
    profit_loss
    WHERE
      
    (companies.company_name 'GREENE KING PLC ') AND 
      (
    companies.company_id balance_sheet.company_id) AND 
      (
    companies.company_id profit_loss.company_id
    Meine Frage and die php-profis hier is..
    Warum erhalte ich den ROI immer 5 x für jedes Jahr!?
    Gruss und Danke
    Zuletzt geändert von Clubingman78; 28.08.2006, 00:37.

  • #2
    Re: Problem bei Berechnung in Abfrage

    Original geschrieben von Clubingman78
    Warum erhalte ich den ROI immer 5 x für jedes Jahr!?
    Weil du hinter FROM mehrere Tabellen angegeben hast, und damit die kombinierten Datensätze auch mehrmals erhältst.

    Beschäftige dich mit JOINs - siehe Sticky Thread hier im Forum, www.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ok, hab's mal mit GROUP BY balance_sheet.year versucht. Sieht schon einiges besser aus.

      Allerdings weichen die Ergebnisse von den tatsächlich errechneten Ergebnissen ab!?
      Zuletzt geändert von Clubingman78; 28.08.2006, 09:52.

      Kommentar


      • #4
        Original geschrieben von Clubingman78
        Ok, hab's mal mit GROUP BY balance_sheet.year versucht.
        Warum?
        Allerdings weichen die Ergebnisse von den tatsächlich errechneten Ergebnissen ab!?
        Mach dir klar, was GROUP BY macht - es wählt von allen Datensätzen einer "Gruppe" lediglich einen einzigen aus, der dann weiterverwendet wird.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          vernünftig lesen
          http://www.php-resource.de/forum/sho...threadid=28292

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Jetzt hab ich was über Join gefunden. Is es das was ich brauch?
            Wenn ja, versteh leider überhaupt nich wie ich das einsetzen muss??? Die Lösung als Beispiel würde mir echt weiterhelfen und wird so wie es aussieht au nich bei dieser einen Abfrage für mein Java-projekt bleiben..

            Danke

            Kommentar


            • #7
              Jetzt hab ich was über Join gefunden. Is es das was ich brauch?
              Wenn ja, versteh leider überhaupt nich wie ich das einsetzen muss??? Die Lösung als Beispiel würde mir echt weiterhelfen und wird so wie es aussieht au nich bei dieser einen Abfrage für mein Java-projekt bleiben..

              Danke

              Kommentar


              • #8
                ich glaube Dir fehlt nur noch eine where bedingung:
                balance_sheet .year = profit_loss.year
                Denn du hast schon Joins in Deiner Abfrage enthalten nur eben nicht komplette Schlüsselbeziehungen abgedeckt
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  TAUSEND DANK!!

                  Das klappt wunderbar..

                  Jetzt hab ich aber noch ne Frage. Bei der Berechnung des roi bekomm ich NULL Werte welche auch nicht benötigt werden. Wie kann ich also NULL Ergebnisse ausschliessen!?

                  Hab's schon mit ... AND roi != NULL und ... HAVING roi != 0 - war's wohl nich..

                  Kommentar


                  • #10
                    where blabla IS NOT NULL

                    http://dev.mysql.com/doc/refman/5.1/...with-null.html
                    mfg

                    Kommentar

                    Lädt...
                    X