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

Datensätze in einer Tabelle vergleichen und aktuellen ausgeben

Frage Entwicklung Datenbanken

Mitglied: CryptKeeper

CryptKeeper (Level 1) - Jetzt verbinden

23.02.2012, aktualisiert 14:43 Uhr, 2043 Aufrufe, 4 Kommentare

Hallo liebe Community,
Ich habe ein hoffentlich kleines Problem bei einer Abfrage.

Ich habe eine Tabellenstruktur in dieser Form:
Artikelgruppe | Artikel | Preis gültig ab | Preis 
------------------------------------------------------------ 
10                    | 123     |  01.01.2011      | 2,50 
10                    | 123     |  20.05.2011      | 2,99 
10                    | 234     |  01.01.2011      | 2,50 
10                    | 345     |  01.01.2011      | 2,50 
10                    | 345     |  31.08.2011      | 1,99
Ich brauche nun zu den Artikeln die aktuell gültigen Preise. Also eine Ausgabe in dieser Form:
Artikelgruppe | Artikel | Preis gültig ab | Preis 
------------------------------------------------------------ 
10                    | 123     |  20.05.2011      | 2,99 
10                    | 234     |  01.01.2011      | 2,50 
10                    | 335     |  31.08.2011      | 1,99
Irgendwie komme ich da aber nicht hin. Wie müsste ich denn die Abfrage gestalten um zum gewünschten Ergebnis zu kommen?

Vielen Dank schon mal

Andreas
Mitglied: Indrador
23.02.2012 um 13:44 Uhr
Hi,

das Select sollte funktionieren:

Folgt

Attribute wie "Preis gültig ab" sind im übrigen pfuibah, man benutzt keine deutschen Umlaute und leerzeichen sind auch alles andere als Professionell, dann lieber "Preis_gueltig_ab"

Gruß
Bitte warten ..
Mitglied: CryptKeeper
23.02.2012 um 14:30 Uhr
Hallo Indrador

Vielen Dank für die schnelle Antwort.

Das mit Umlauten und Leerzeichen ist schon klar - diente hier nur zur Vereinfachung der Tabelle.

Irgendwie komm ich aber noch nicht so ganz zurecht. Woher kommen die Werte in deiner zweiten Zeile [FROM [P360_KS].[dbo].[ArtikelStaffelpreis] --where PK_Angebotsartikel = 21344 ]?

Meine Tabelle heißt "ArtPreise". Wie müsste da die zweite Zeile richtig aussehen?

Übrigens kämpfe ich mit einer Oracle Datenbank falls das dafür wichtig ist.

Mir geht es darum alle Artikel mit dem aktuell gültigen Preis auszugeben. Also in Worten etwa so:

Wenn ein Artikel zwei mal auftaucht (hier also 123 und 345), dann zeige nur den Preissatz mit dem höchsten Datum an (also 2,99 bzw. 1,99) Wenn man den Zeilen Nummern geben würde, sollten also nur die Zeilen 2,3 und 5 ausgegeben werden.
Das ganze für die komplette Tabelle und nicht für einen speziellen Datensatz.


10 | 123 | 01.01.2011 | 2,50 -> Zeile 1
10 | 123 | 20.05.2011 | 2,99 -> Zeile 2
10 | 234 | 01.01.2011 | 2,50 -> Zeile 3
10 | 345 | 01.01.2011 | 2,50 -> Zeile 4
10 | 345 | 31.08.2011 | 1,99 -> Zeile 5

Ausgabe

10 | 123 | 20.05.2011 | 2,99 -> Zeile 2
10 | 234 | 01.01.2011 | 2,50 -> Zeile 3
10 | 345 | 31.08.2011 | 1,99 -> Zeile 5
Bitte warten ..
Mitglied: Indrador
23.02.2012 um 15:00 Uhr
Da hat der indrador tief und feste geschlafen, das waren Teile von mir.
Ich schreibe nachher oben was rein.
Bitte warten ..
Mitglied: pi314
04.03.2012 um 15:22 Uhr
Sers,

da du nicht gesagt hast, welche DB du verwendest, hier mal ein Schuss ins Blaue..

Hier die Tabelle ArtPreise:
01.
Grp  Art   Gueltig      Preis 
02.
10   123   01.01.2011   2,5 
03.
10   123   20.05.2011   2,99 
04.
10   234   01.01.2011   2,5 
05.
10   345   01.01.2011   2,5 
06.
10   345   31.08.2013   1,99
und dann hier der Select:

01.
select a.* 
02.
  from artpreise a 
03.
       join (select art, max( gueltig ) maxGueltig 
04.
               from artpreise 
05.
              where gueltig <= sysdate 
06.
              group by art) b on (b.art = a.art and 
07.
                                  b.maxGueltig = a.gueltig) 
08.
;
ergibt folgendes Ergebnis:
01.
Grp  Art   Gueltig      Preis 
02.
10   123   20.05.2011   2,99 
03.
10   234   01.01.2011   2,5 
04.
10   345   01.01.2011   2,5
so long,
pi314
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Zeitangabe mit aktueller Angabe vergleichen (14)

Frage von Peter32 zum Thema Batch & Shell ...

Microsoft Office
Excel 2010 - Zwei Tabellen vergleichen (Zugriffsprüfung) (2)

Frage von d4shoerncheN zum Thema Microsoft Office ...

Batch & Shell
gelöst Teile eines Powershell Skriptes in einer Tabelle ausgeben (3)

Frage von ReneBue zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (21)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (12)

Frage von alemanne21 zum Thema Webentwicklung ...