Vergleichsberchnungen aus Daten einer Datenbank - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Roger (141 Beiträge) am Sonntag, 26.Januar.2003, 13:58. WWW: www.einsam-zweisam.de
    Vergleichsberchnungen aus Daten einer Datenbank

      Hallo,

      ich möchte aus einer Datenbank mit verschiedenen Datensätzen die Datensätze vergleichen, bzw. berechnen.

      Datenbank:

      Feld1: Datensatzname
      Feld2: Wert1
      Feld3: Wert2
      Feld4: Wert3
      .
      .
      .
      Feld51: Wert50

      Die Felder haben allerdings andere Namen, die nicht durchnummeriert sind.
      Die Werte können Zahlen von 0 bis 9 sein

      Ich möchte nun alle Werte von DatensatznameX mit DatensatznameY berechnen lassen.

      Den jeweils kleineren Wert vom größeren Wert subtrahieren und dieses Ergebnis von 10 abziehen.

      Jetzt hätte ich 50 Zahlen wobei die Maximale Summe aller Ergebisse 500 ist, also könnte ich diese 50 Ergebisse von vornherein auf eine Variable aufaddieren.

      Am Ende möchte ich einen Prozentwert erhalten.


      Meine Kenntnisse reichen so weit, daß ich ein Template mit 50 einzelnen Berechnungen aufbaue, was mir aber nicht gefällt, das Template würde zu groß werden und mit der Laufzeit habe ich dann auch so meine Zweifel.

      Wer kann mir helfen, sicher ist das mit Mitteln aus Perl nur ein sehr kleiner Programmcode.

      Danke

      Roger


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Roger (141 Beiträge) am Sonntag, 26.Januar.2003, 13:58. WWW: www.einsam-zweisam.de
    Vergleichsberchnungen aus Daten einer Datenbank

      Hallo,

      ich möchte aus einer Datenbank mit verschiedenen Datensätzen die Datensätze vergleichen, bzw. berechnen.

      Datenbank:

      Feld1: Datensatzname
      Feld2: Wert1
      Feld3: Wert2
      Feld4: Wert3
      .
      .
      .
      Feld51: Wert50

      Die Felder haben allerdings andere Namen, die nicht durchnummeriert sind.
      Die Werte können Zahlen von 0 bis 9 sein

      Ich möchte nun alle Werte von DatensatznameX mit DatensatznameY berechnen lassen.

      Den jeweils kleineren Wert vom größeren Wert subtrahieren und dieses Ergebnis von 10 abziehen.

      Jetzt hätte ich 50 Zahlen wobei die Maximale Summe aller Ergebisse 500 ist, also könnte ich diese 50 Ergebisse von vornherein auf eine Variable aufaddieren.

      Am Ende möchte ich einen Prozentwert erhalten.


      Meine Kenntnisse reichen so weit, daß ich ein Template mit 50 einzelnen Berechnungen aufbaue, was mir aber nicht gefällt, das Template würde zu groß werden und mit der Laufzeit habe ich dann auch so meine Zweifel.

      Wer kann mir helfen, sicher ist das mit Mitteln aus Perl nur ein sehr kleiner Programmcode.

      Danke

      Roger

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 26.Januar.2003, 16:37.
    Re: Vergleichsberchnungen aus Daten einer Datenbank

      super, wieder mal was kniffeliges ;-)

      So könnte es aussehen:

      get;
      $i=1;
      while(get_next)
      {
        ## datensätze extra speichern
        %{"ds$i"}=%_loop;
        $i++;
      }
      ## alle felder durchlaufen
      foreach (keys %ds1){
         ## zu jedem feld die werte in eine extraliste aufnehmen
         for ($x=1;$x<$i;$x++){
             push @{$_},${"ds$x"}{$_};
         }
      ## diese liste von groß nach klein sortieren
      @sort=sort{$b<=>$a} @{$_};
      ## ergebnis 10-(werte der liste subtrahieren) im hash speichern
      $erg{$_}=10-eval(join("-",@sort));
      ## und ergebnis insgesamt aufaddieren
      $insg+=$erg{$_};
      }
      out "<b>Insgesamt</b>: $insg<br>--------------------</br>";
      ## hier für jedes feld die Prozente errechnen
      foreach (keys %erg){
      out "<br><b>$_</b> ".100*$erg{$_}/$insg." %";
      }
      

      Sander

     Antworten

    Beitrag von Roger (141 Beiträge) am Dienstag, 18.Februar.2003, 10:00.
    Re: Vergleichsberchnungen aus Daten einer Datenbank

      Hallo Sander,

      habe mir den Code:

      get;
      $i=1;
      while(get_next)
      {
       
      ## datensätze extra speichern
        %{"ds$i"}=%_loop;
        $i++;
      }
       
      ## alle felder durchlaufen
      foreach (keys %ds1){
         ## zu jedem feld die werte in eine extraliste aufnehmen
         for ($x=1;$x<$i;$x++){
             push @{$_},${"ds$x"}{$_};
         }
      ## diese liste von groß nach klein sortieren
      @sort=sort{$b<=>$a} @{$_};
      ## ergebnis 10-(werte der liste subtrahieren) im hash speichern
      $erg{$_}=10-eval(join("-",@sort));
      ## und ergebnis insgesamt aufaddieren
      $insg+=$erg{$_};
      }
      out "<b>Insgesamt</b>: $insg<br>--------------------</br>";
       
      ## hier für jedes feld die Prozente errechnen
      foreach (keys %erg){
      out "<br><b>$_</b> ".100*$erg{$_}/$insg." %";
      } 
      

      mal genau angeschaut. Zum Teil verstanden, wasa ich aber noch nicht verstehe, wie deffiniere ich dort die passende Datenbank, in meinem Fall heißt sie:

      "match"

      und den Datensatznamen, der ja wichtig ist. Es ist das erste Feld und hat den Namen:

      "benutzername"

      Am Ende möchte ich eine Ausgabe, in der der Templateaufrufende und somit der mit dem Refferenzwert ist (er muß aber auch in der Datenbank vorkommen, sonst ---> Fehlermeldung), in der hinter jedem $benutzername der Prozentwert steht.

      out $nickname," = ",$prozent,"<br>";
      

      hätte selbst nicht gedacht, wie kniffelig das für mich wird.

      Danke und alles Liebe

      Roger

     Antworten


     
 Liste der Einträge von 40950 bis 41100:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!