Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Update SQL Befehl

Frage Entwicklung

Mitglied: ThomasKern

ThomasKern (Level 1) - Jetzt verbinden

01.12.2013 um 12:32 Uhr, 1559 Aufrufe, 8 Kommentare

Hallo zusammen,

ich häng gerade an einem SQL Befehl fest, und wollte fragen ob mir evtl. jemand auf die Sprünge helfen kann?

Folgende Konstellation der Tabelle. (vereinfachte Ansicht)

Tabelle LAGER

4f92004aa59c6c31ee6e298aa3c44c95 - Klicke auf das Bild, um es zu vergrößern




Bsp.

Artikelnummer 1: 25 * 0,6% soll die 0 mit 15 ersetzten
Artikelnummer 2: 0,9 * 0,6 soll die 0 mit 0,63 ersetzen
usw.
.
So soll für jeden Artikel der B-Ware EK Preis berechnet werden.

hoffe ich konnte meine Frage verständlich machen.

Vorab besten Dank

Viele Grüße
Tom
Mitglied: certifiedit.net
01.12.2013 um 12:38 Uhr
Hallo Tom,

wie sieht denn dein bisheriger Versuch aus? Abgesehen davon macht der Tabellenaufbau imho wenig Sinn?
Bitte warten ..
Mitglied: Maliko
01.12.2013 um 12:54 Uhr
Nun. Wenn du nicht alle auf einmal Ändern willst, dann könntest du es über folgendes Statement versuchen:

UPDATE Test SET EK = (SELECT Test.EK FROM Test WHERE Test.Lagerort = 'Hauptlager' AND Test.Artikelnummer = 1) * 0.6 WHERE Lagerort = 'B-Ware' AND Artikelnummer = 1
Bitte warten ..
Mitglied: ThomasKern
01.12.2013 um 13:00 Uhr
Hallo certifiedit,

vielen dank für die Antwort.

bin leider in SQL noch nicht so fit. Mein versuch war.

UPDATE Lager set Ek = Ek*0,6 where Lagerort = 'B-Ware'

ich vermute ich brauche noch eine zweites mal where wo die Artikelnummer mit einbeziehe.

Der Tabellen aufbau ist leider vorgegeben und kann von mir nicht verändert werden.

Viele Grüße
Tom
Bitte warten ..
Mitglied: ThomasKern
01.12.2013 um 13:06 Uhr
Hallo Maliko,

Danke für deine Hilfe.

doch ich möchte schon gerne alle Artikel auf einmal ändern. Später soll der Befehl auch täglich ausgeführt werden und für jeden Artikel den B-Ware EK neu berechnen.

Hintergrund:
nur immer die Hauptlager EK Preise werden aktuell gehalten, und die B-Ware EK Preise sollen automatisch angepasst werden. Der B-Ware EK ist immer Hauptlager EK * 0,6.

Viele Grüße
Tom
Bitte warten ..
Mitglied: ThomasKern
01.12.2013 um 14:34 Uhr
Kann mir keiner weiterhelfen??
Bitte warten ..
Mitglied: Maliko
01.12.2013 um 14:45 Uhr
Meines Wissens nach ist es gar nicht möglich das als ein einziges Statement zu lösen. Du musst es entweder für jede Artikelnummer einzeln machen, oder aber ein kleines Programm schreiben, welches in einer Schleife Artikelnummer für Artikelnummer durchgeht.
Bitte warten ..
Mitglied: Biber
01.12.2013, aktualisiert um 18:22 Uhr
Moin ThomasKern,

willkommen im Forum.

Zitat von ThomasKern:

Bsp.

Artikelnummer 1: 25 * 0,6% soll die 0 mit 15 ersetzten
Artikelnummer 2: 0,9 * 0,6 soll die 0 mit 0,63 ersetzen
So, bei euch sind also 90 Cent * 60% als Verkaufspreis dann 63 Cent?
Dann sei froh, wenn ich der einzige Nachrechner bleibe.

Bei einer Updateanweisung kämen jedenfalls 0.54 statt 0.63 heraus, um zum Kern zu kommen (kleines Wortspiel).

Beispiel:
01.
Update Lager L left join ( 
02.
   Select Artikelnummer, 0.6 * Ek as calcEK  
03.
   from Lager  
04.
   where Lagerort ="Hauptlager" 
05.
  ) H on L.artikelnummer=H.artikelnummer 
06.
set  L.Ek = H.CalcEK 
07.
where L.lagerort="B-Ware" 
08.
and exists (select 1  from Lager H  
09.
                where H.Lagerort ="Hauptlager"  
10.
               and H.Artikelnummer=L.artikelnummer)
Wenn der (unterstellte) PK deiner Lagertabelle dann auch "lagerort, artikelnummer" ist, dann sollte es klappen.

P.S. Ich würde mich eher krankmelden, bevor ich in einer produktiven DB ein Update auf Stringvergleiche wie "B-Ware" und "Hauptlager" mache. Gibt es da wenigstens Constraints auf eine Lagerort-Tabelle bzw. eine Artikeltabelle?

Und wie jedes zweite Mal in diesem Bereich:
wir können besser helfen, wenn wir wissen, mit welcher Datenbank und welcher Version hier rumgeSQLed wird.

Grüße
Biber
Bitte warten ..
Mitglied: ThomasKern
01.12.2013 um 18:19 Uhr
Danke für die Hilfe ;)
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
Whatsup Gold update SQL Server (2)

Frage von Neonium zum Thema Windows Server ...

Windows Server
gelöst Update von sql server express 2005 sp4 auf 2008 klappt nicht (11)

Frage von jhaustein zum Thema Windows Server ...

Datenbanken
gelöst SQL - mehrere UPDATE-Anweisungen in einem String per vbs (4)

Frage von goodbytes zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...