Top-Themen

Aktuelle Themen (A bis Z)

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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL Abfrage funktioniert nicht mehr nach Update

Mitglied: Cocktailz82

Cocktailz82 (Level 1) - Jetzt verbinden

18.12.2013 um 12:38 Uhr, 2027 Aufrufe, 5 Kommentare

Hallo zusammen,

nach unserem letzten Update der Datenbank (Sage auf MS SQL Server 2008) läuft eine SQL Abfrage nicht mehr.

Die Abfrage komplett ist wie folgt:

Vorher lief diese Formel super und hat auch immer genau einen Wert zu einer Artikelnummer herausgeworfen. Wenn man nun die Unterabfragen ( Codezeilen 4 - 11)
rausnimmt funktioniert das ganze zwar, allerdings dann ohne die Preise. Beim versuch das ganze neu aufzubauen hängt das ganze dann daran, das man nur Artikel angezeigt bekommt, ohne Lagerbestand, oder mit dem Filter auf Lagerbestand > 0 garnichts mehr angezeigt bekommt.

Die Fehlermeldung die man derzeit bekommt lautet:

Die Unterabfrage hat mehr als einen Wert zurückgegeben. Das ist nicht zulässig, wenn die Unterabfrage auf .....

Ich verweifel hier grad ein wenig an dem Ding. Ich hab schon öfter mal ein wenig mit SQL gearbeitet, aber die Unterabfragen und die Ergebnisse die ich in den letzten 1,5 Tagen mit dieser Herausforderung hab, sind mir doch noch etwas zu viel.

Gibt es hier ein paar versierte SQL Spezis die mir hier ein wenig zur Hand gehen können?
Bin über jede hilfe froh und dankbar!!


Gruß Tailz
Mitglied: LianenSchwinger
18.12.2013 um 13:35 Uhr
Hallo Tailz,

ich bin ja kein Freund von solchen Unterabfragen im SELECT-Teil.

Warum bindest Du diese nicht per LEFT JOIN mit ein?

Und im SELECT-Teil a.einzelpreis AS Haendler und b.einzelpreis AS Endkunde.

G Jörg
Bitte warten ..
Mitglied: Cocktailz82
18.12.2013 um 13:44 Uhr
Hi Jörg,

Ich bin auch kein Freund von solchen Unterabfragen. Hab das leider so von meinem Vorgänger alles übernommen und mich bislang auch ehrlicherweise nich groß drum gekümmert.

Werd ich mal durchtesten. Danke schonmal für den Tipp.
Bitte warten ..
Mitglied: MadMax
18.12.2013, aktualisiert um 13:50 Uhr
Hallo Tailz,

in mindestens einer Deiner beiden Unterabfragen für die Preise bekommst Du mehrere Zeilen zurück und das ist an dieser Stelle nicht zulässig.

Umgehen kannst Du das, indem Du ein " top (1) " hinter das SELECT in der Unterabfrage schreibst. Dann bringt die Unterabfrage sicher nur eine Zeile zurück und funktioniert:
Aber wenn es zu einem Artikel mehrere Händler oder mehrere Kunden gibt, dann ist das Ergebnis mit Sicherheit unbefriedigend, weil Du eben zufällig einen Händler und zufällig einen Kunden angezeigt bekommst. Den Zufall könntest Du mit einem "ORDER BY" noch beeinflussen, damit wenigstens immer derselbe Preis gewählt wird:
Du soltest Dir also überlegen, was der Zweck hinter Deiner Abfrage ist. Möchtest Du den höchsten/niedrigesten oder vielleicht den Durchschnittspreis angezeigt bekommen? Dann sollte die Unterabfrage eine Aggregatfunktion enthalten. Dann brauchst Du das "top (1)" nicht, dann kommt auch nur ein Datensatz zurück. Wäre dann etwa so:
Und letzten Endes kannst Du auch alle möglichen Kombinationen von Händler- und Kundenpreisen erzeugen:
Wobei dann sicher noch die Namen des Händlers und des Kunden interessant wären.

Gruß, Mad Max

Edit: Die letzte Möglichkeit ist quasi dasselbe wie vom Tarzan. Aber vorsicht, da bekommst Du ein Kreuzprodukt, das mußt Du Dir überlegen, ob Du das willst.
Bitte warten ..
Mitglied: Cocktailz82
18.12.2013, aktualisiert 19.12.2013
Hi,

dein Tipp war Gold wert Jörg! Hat mir richtig weiter geholfen. Vielen Dank schonmal
Funktioniert allerdings noch nicht ganz so wie erhofft.

Die Abfrage liefert jetzt auf jedenfall schonmal die Artikel mit Bestand und dazu den Händler und den Endkundenpreis.
Allerdings liefert sie mir immer 32 mal den selben Datensatz zurück. Und das merkwürdigste Phänomen ist: Wenn ich dann eine Sortierung nach Artikelnummer hinzufüge,
werden aus den 32 Datensätzen plötzlich nur noch 16. Ich wird hier noch verrückt. Ich würd gern verstehen warum ich mal 32 DS bekomme und dann wiederum nur 16 durch eine SORTIERUNG, die ja meines Erachtens nach garnicht in der Lage sein kann zu filtern. Ist mir irgendwie zu hoch

Das war in der alten nicht so. Hab nun versucht das ganze per

zu verhindern und somit zu jeder Artikelnummer nur einen DS zu bekommen, aber da bekomm ich dann nur Fehlermeldungen.
Hast du dazu evtl. auch noch eine Idee?

Gruß
Bitte warten ..
Mitglied: Cocktailz82
18.12.2013 um 14:38 Uhr
Hi Mad Max,

da haste ja mal ordentlich einen rausgehauen. Nicht Schlecht! Der Zweck ist eigetnlich ein ganz ganz simpler: Ich möchte zu den Artikel von denen grad ein Lagerbestand vorhanden ist, den Preis für die Endkunden und den Preis für die Händler auslesen. Anfangs hab ich gedacht das kann ja nicht so kompliziert sein, und dann sah ich die Datenbankstruktur.

Werd mich hier auch noch mal durcharbeiten

Gruß und Danke

Jens
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Rekursive SQL Abfrage funktioniert nicht
Frage von lasterDatenbanken7 Kommentare

Hallo, habe eine MariaDB Version 10.1.44 auf Ubuntu 18.04 Folgendes möchte ich erreichen: In einer Tabelle ad_gruppe_membergruppe mit 2 ...

Datenbanken

SQL-Abfrage mit "kleiner gleich" funktioniert nicht

gelöst Frage von derSESODatenbanken2 Kommentare

Hallo! Per folgender SQL-Abfrage erhalten wir nicht das korrekte Ergebnis: Dabei wird die letzte Bedingung "<=" nicht korrekt umgesetzt. ...

Datenbanken

SQL-Statement in Excel .dqy Query - (Zeitrahmen) funktioniert nicht ?

gelöst Frage von SchelinhoDatenbanken6 Kommentare

Hallo zusammen, folgendes Thema: ich habe ein SQL-Statement mit Variablen Usereingaben, welches im PL/SQL-Developer auch tadellos funktioniert. Die Variable ...

Windows 10

SQL Verbindung nach Creators update windows 10 funktioniert nicht

Frage von FlinxitWindows 106 Kommentare

hallo ITler, habe bei einem Kunden seit der Umstellung auf die 1803 Version Windows 10 das Problem das ein ...

Neue Wissensbeiträge
Humor (lol)

Wie verhindere ich, dass Websitebesucher die Werbecookies abschalten?

Information von DerWoWusste vor 1 TagHumor (lol)7 Kommentare

Ich habe gerade auf die Antwort gefunden: ich täusche einen langwierigen Änderungsprozess vor und biete nebenbei einen Cancelbutton, den ...

Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 2 TagenSicherheit3 Kommentare

Eine interessante neue Sicherheitslücke. Details gibt es wenig, aber die klare Empfehlung: If you are using WSUS or MEM ...

Exchange Server

Exchange Server 2016 and the End of Mainstream Support

Information von Dani vor 2 TagenExchange Server

As hopefully many of you already know Exchange Server 2016 enters the Extended Support phase of its product lifecycle ...

Viren und Trojaner

Schwachstelle in Teamviewer oder aufgeflogene Backdoor?

Information von magicteddy vor 3 TagenViren und Trojaner1 Kommentar

Moin, die Interpretation überlasse ich jedem selber, ich habe eine deutliche Abneigung dagegen. Wer es nutzen muss sollte schleunigst ...

Heiß diskutierte Inhalte
Windows Server
Windows Server "mit" oder "ohne" Antivirensoftware
gelöst Frage von Dr.MabuseWindows Server23 Kommentare

Antiviren-Software: Fluch oder Segen? Die Frage der Sinnhaftigkeit von Antiviren-Software ist nicht neu Die Software kostet Performance, sorgt oft ...

Windows Server
Patchday August Server 2019 - zerstört Hyper V Dienste
Frage von ichkriegediekrieseWindows Server19 Kommentare

Guten Morgen alle zusammen Gestern habe ich, wie oft die Sicherheitsupdates vom Patchday eingespielt da ja doch einige Sicherheitsupdates ...

Hardware
Azubi Projekt - Serverhardware
Frage von nachgefragtHardware19 Kommentare

Hallo Administratoren, für ein Azubi-Projekt benötige ich euren Rat, um ihr das Thema Serverhardware näher zu bringen: Server zusammenbauen ...

iOS
Facetime Nummer
gelöst Frage von ral9004iOS16 Kommentare

Hallo Ein Kollege bat mich, ihm für den Videochat meine Facetime Nummer zu mailen. Meine Facetime App läuft auf ...

Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...