Rechnen im Query

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

  • Rechnen im Query

    Tagchen,

    folgendes, kleineres Problem:

    Sollte dieses Statement in einem Update-Query rein theoretisch nicht funktionieren?

    PHP-Code:
    `lw_w_inventar`.`ware_inv`=(`lw_w_inventar`.`ware_inv`-`lw_w_import`.`ware_volume`)+10000
    Weil sich an "`lw_w_inventar`.`ware_inv`" rein gar nichts ändert.
    Oder wie würdet ihr das lösen?


    thx schonmal.
    mfg - sagg

  • #2
    fehlermeldun?

    Kommentar


    • #3
      Re: Rechnen im Query

      Original geschrieben von sagg

      Oder wie würdet ihr das lösen?
      also ich würde das erstmal testen und schaue, ob das was ich will auch funktioniert ggf. Fehlermeldung auswerten und entsprechend ändern. Aber ich würde nicht bei jedem Sch**ß ins Forum rennen und Fragen stellen.

      Kommentar


      • #4
        Re: Re: Rechnen im Query

        @asp2php, erzähl das den jenigen, die das nicht wissen, aber bitte nicht mir. Danke.

        Fehlermeldung kommt keine, ich habs auch mit verschiedenen "Klammersetzungen" probiert, sprich alles einklammern, gar keine Klammern verwendet und so weiter, hat sich aber nie was geändert.

        Im Manual steht zwar das:
        Code:
         UPDATE assignments are evaluated from left to right. For example, the following statement
        doubles the age column, and then increments it:
        
        UPDATE persondata SET age=age*2, age=age+1;
        Aber irgendwie klappt das ned wirklich, da er nur das letztere der beiden Statements umsetzt. (unter MySQL 4.x)

        Ich kann z. Z. leider nur per Putty im Code rumwursten, deswegen kann ich leider nur schwierig Code kopieren.
        Zuletzt geändert von sagg; 03.03.2006, 20:48.
        mfg - sagg

        Kommentar


        • #5
          ich erzähl dir jetzt erstmal, dass man statements entweder vernünftig formatiert/umbricht oder nicht in code-tags semmelt.

          Kommentar


          • #6
            wie wäre es, wenn du uns mal deine queries postest. das sollte ja möglich sein. das testen im myadmin vermutlich auch,

            Kommentar


            • #7
              Dieser Query erhöht zwar "`lw_w_inventar`.`ware_inv`" um 100, führt aber die vorherige Subtration nicht aus.

              PHP-Code:
              UPDATE `lw_w_import`, `lw_w_inventar
              SET `lw_w_import`.`soll_date`=1160431200, `lw_w_import`.`bill_nr`="0dfubj"
              `
              lw_w_inventar`.`supplier`=1
              `
              lw_w_inventar`.`art_description`="Irgendwas"
              `
              lw_w_inventar`.`art_comments`="bemerkung1"
              `
              lw_w_inventar`.`ware_inv`=`lw_w_inventar`.`ware_inv`-`lw_w_import`.`ware_volume`, 
              `
              lw_w_inventar`.`ware_inv`=`lw_w_inventar`.`ware_inv`+100
              `
              lw_w_import`.`ware_volume`=100
              `
              lw_w_inventar`.`allocation`=
              WHERE 
              `lw_w_inventar`.`art_nr`=`lw_w_import`.`art_nr
              AND `
              lw_w_import`.`id`=
              Laut der Docu müsste es so ja gehen.
              mfg - sagg

              Kommentar


              • #8
                probier mal:


                UPDATE `lw_w_import`, `lw_w_inventar`
                SET `lw_w_import`.`soll_date`=1160431200, `lw_w_import`.`bill_nr`="0dfubj",
                `lw_w_inventar`.`supplier`=1,
                `lw_w_inventar`.`art_description`="Irgendwas",
                `lw_w_inventar`.`art_comments`="bemerkung1",
                `lw_w_inventar`.`ware_inv`=`lw_w_inventar`.`ware_inv`- 10,
                `lw_w_inventar`.`ware_inv`=`lw_w_inventar`.`ware_inv`+100,
                `lw_w_import`.`ware_volume`=100,
                `lw_w_inventar`.`allocation`=2
                WHERE `lw_w_inventar`.`art_nr`=`lw_w_import`.`art_nr`
                AND `lw_w_import`.`id`=3

                Kommentar


                • #9
                  Addiert auch wieder nur 100 dazu, die 10 wird vollkommen ignoriert.
                  mfg - sagg

                  Kommentar


                  • #10
                    Hm, so geht's:

                    PHP-Code:
                    UPDATE `lw_w_import`, `lw_w_inventar`
                    SET `lw_w_import`.`soll_date`=1160431200, `lw_w_import`.`bill_nr`="0dfubj",
                    `
                    lw_w_inventar`.`supplier`=1,
                    `
                    lw_w_inventar`.`art_description`="Irgendwas",
                    `
                    lw_w_inventar`.`art_comments`="bemerkung1",
                    `
                    lw_w_inventar`.`ware_inv`=(`lw_w_inventar`.`ware_inv`- 10)+100,
                    `
                    lw_w_import`.`ware_volume`=100,
                    `
                    lw_w_inventar`.`allocation`=2
                    WHERE 
                    `lw_w_inventar`.`art_nr`=`lw_w_import`.`art_nr`
                    AND `
                    lw_w_import`.`id`=
                    Steht anstelle von der 10 "`lw_w_import`.`ware_volume`", verändert sich gar nichts mehr.
                    Verstehe ich nich wirklich..
                    Zuletzt geändert von sagg; 03.03.2006, 21:55.
                    mfg - sagg

                    Kommentar


                    • #11
                      Omfg, man nehme
                      PHP-Code:
                      UPDATE `lw_w_inventar`, `lw_w_import
                      und nicht
                      PHP-Code:
                      UPDATE `lw_w_import`, `lw_w_inventar
                      Das tut selbst mir weh.
                      mfg - sagg

                      Kommentar

                      Lädt...
                      X