Announcement

Collapse
No announcement yet.

spalte kopieren

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

  • spalte kopieren

    hallo,
    folgendes:

    wie kann ich die spalte "xyz" bei artikel a kopieren und bei den artikeln b-e einfügen?

    es handelt sich um fesnterprofile, die alle die gleiche farbbezeichnungen haben. von hand jede zeile einzeln zu kopieren ist viel zu aufwendig.

    mit nachstehender anweisung habe ich bereits fertigen artikel herausgefiltert:

    Code:
    select referenciabase, referencia, desauto, desprod
    from materiales
    where referenciabase = 'BRUIA-70'
    es sind genau 21 zeilen, also 21 farbvarianten.

    diese 21 zeilen will ich nun für die anderen artikel kopieren / einfügen.
    es ändert sich nur die artikelnummer, die spalte und tabelle bleibt gleich.

    wenn noch fragen sind, ich stehe euch rede und antwort.
    gruß 4death

  • #2
    update materiales
    set BRUIA-70A.desauto = BRUIA-70.desauto
    where referenciabase = 'BRUIA-70A'
    diese anweisung ist nicht wirklich passend. ich komm da auch nicht weiter.
    man muss doch sagen, makiere die spalte von artikel a, kopiere sie und füge sie bei den anderen artikeln ein.

    Comment


    • #3
      Hallo,
      Originally posted by 4death View Post
      ...wie kann ich die spalte "xyz" bei artikel a kopieren und bei den artikeln b-e einfügen?
      Mit einem UPDATE-Statement:
      [highlight=sql]
      update tabelle set
      xyz = (select xyz from tabelle where artikel = 'a')
      where artikel in ('b', 'c', 'd', 'e')
      [/highlight]

      Anm.: Nicht alle DBMS unterstützen ein Subselect auf die gerade geänderte Tabelle.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        danke für die antwort, hat leider nicht geklappt.

        Code:
        update  materiales
        set desauto = (select desauto FROM materiales WHERE referenciabase = 'BRUIA-70')
        where referenciabase = 'BRUIA-70A'
        es kommt zu folgender meldung:

        Meldung 512, Ebene 16, Status 1, Zeile 1
        Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.

        Die Anweisung wurde beendet.

        hat jamend einen verdacht woran es scheitert?
        es ist der sql-server 2005 im einsatz.

        Comment


        • #5
          Hallo,

          der Subselect muss so formuliert sein, dass er für jeden Satz, den Du updatest, nur ein Ergebnis liefert.

          Gruß
          docendo discimus

          Comment


          • #6
            Hallo,
            Originally posted by 4death View Post
            ...hat jamend einen verdacht woran es scheitert?
            Ja, daran:

            Originally posted by 4death View Post
            Meldung 512, Ebene 16, Status 1, Zeile 1
            Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf =, !=, <, <=, > oder >= folgt oder als Ausdruck verwendet wird.
            Das Subselect muß für diesen Fall exakt einen (keinen mehr und keinen weniger) Datensatz liefern. Du mußt also hier für die Eindeutigeit sorgen.

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              ok habe i verstanden und es passt nun auch.

              trotzdem....also es sind ca 50 artikel mit je 23 unterschiedlichen farben.
              bei dem ersten artikel sind alle 23 farben hinterlegt. kann man denn nicht irgendwie für die restlichen 49 artikel sämtliche farben vom ersten artikel direkt mit einem script kopieren?

              mit dem bisherigen script, müsste ich ja den ersten artikel 23 mal durchgehen, damit die farben für die anderen artikel kopiert werden.
              ist sehr aufwendig, besteht noch eine andere lösung?

              kann man nicht einfach irgendwie sagen, markiere bei artikel a alle 23 farben, kopiere sie und füge sie bei den anderen artikeln ein? also ich meine das muss möglich sein.

              danke schon mal.

              info...


              habe es mal durchgerechnet, also es sind 170 artikel mit 23 farben und 6 materialarten.
              kurz gesagt sind 23460 zeilen betroffen. und das will und kann ich nicht von hand bearbeiten, bzw. jede zeile einzelnt einfügen...da sitze ich ja nächstes jahr noch dran.

              es muss eine möglichkeit geben, alles in einem schritt zu erledigen.

              vlt hat einer von euch ja ne idee.
              Zuletzt editiert von 4death; 16.06.2009, 12:06.

              Comment


              • #8
                Hallo,
                Originally posted by 4death View Post
                ...kann man nicht einfach irgendwie sagen, markiere bei artikel a alle 23 farben, kopiere sie und füge sie bei den anderen artikeln ein? also ich meine das muss möglich sein.
                SQL ist eine Strukturierte Abfragesprache und kennt kein "Copy & Paste". Das ist Sache einer speziellen Anwendung. Und diese Anwendung hast du uns genausowenig verraten wie dein Datenmodell.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment

                Working...
                X