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

Mehrere max Werte für einen Kunden

Frage Entwicklung Datenbanken

Mitglied: artus-Excalibur

artus-Excalibur (Level 1) - Jetzt verbinden

31.01.2011 um 13:17 Uhr, 3156 Aufrufe, 5 Kommentare

Hallo zusammen...

... ich habe eine Tabelle in der ich 2 Spalten abfragen möchte. Einmal die Kundennummer und eine Spalte mit einem Datum. Ich möchte für jede Kundennummer die letzten 3 Daten ausgeben. Aktuell bekomme ich es aber nur für einen Kunden hin und nicht für alle...

Die Abfrage sieht aktuell so aus:

select STA_KUN_NR, STA_EINGANG from (
select *
from stapel
where sta_unt_nr = 9
and sta_kun_untgst_nr = 0
and sta_kun_nr = 9999
order by sta_eingang desc
)
where rownum < 4;

Ergebnis:

STA_KUN_NR STA_EINGANG

9999 17.12.2010
9999 11.10.2010
9999 02.08.2010

Klar, so wie die Abfrage im Moment da steht frage ich nur einen Kunden ab.
Jetzt ist halt die große Frage, wie bekomme ich eine Abfrage hin, in der mir alle Kunden untereinander mit den letzten 3 Daten angezeigt werden?

Hat da jemand eine Idee?
Mitglied: LittleFlame
31.01.2011 um 14:12 Uhr
Hallo artus_Excalibur,

so wie ich das sehe, ist das über ungefähr solch eine Abfrage möglich (ungetestet):


select STA_KUN_NR, STA_EINGANG from (
select *
from stapel
where sta_unt_nr = 9
and sta_kun_untgst_nr = 0
order by sta_eingang desc
)
where
(
select count(*) from stapel as s
where s.STA_KUN_NR = stapel.STA_KUN_NR and s.sta_eingang < stapel.sta_eingang
)
<= 3
order by sta_kun_nr;

Ob du in der ersten Klammer das

where sta_unt_nr = 9
and sta_kun_untgst_nr = 0

noch brauchst hängt von der Bedeutung der Felder ab.


Musst mal schauen, ob dir sowas in der Art weiterhilft.

Grüße

LittleFlame
Bitte warten ..
Mitglied: TheJoker2305
31.01.2011 um 14:34 Uhr
Vorschlag

select STA_KUN_NR, STA_EINGANG from (
select *
from stapel
where sta_unt_nr = 9
and sta_kun_untgst_nr = 0
order by sta_eingang desc
)
where rownum < 4;


sofern STA_KUN_NR die Kundennummer dartstellt.
Bitte warten ..
Mitglied: artus-Excalibur
31.01.2011 um 14:41 Uhr
Hi funktioniert so leider nicht...

@joker: ergebnis ist im endeffekt das gleiche... ich bekomme durch das rownum nur 3 zeilen... benötige allerdings pro Kundennummer 3 Zeilen...

@LittleFlame: der folgende part funktioniert so leider nicht: select count(*) from stapel as s
where s.STA_KUN_NR = stapel.STA_KUN_NR and s.sta_eingang < stapel.sta_eingang
Bitte warten ..
Mitglied: MadMax
31.01.2011 um 22:33 Uhr
Moin artus,

ich meine das folgende müßte auch unter Oracle klappen (ungetestet, weil ich keine Oracle-DB parat habe):
01.
select	sta_kun_nr, sta_eingang 
02.
from	(select	sta_kun_nr, sta_eingang, 
03.
		row_number() over (partition by sta_kun_nr order by sta_eingang desc) as zeilennr 
04.
	from	stapel 
05.
	where	sta_unt_nr = 9 and 
06.
		sta_kun_untgst_nr = 0) as t 
07.
where	zeilennr <= 3;
Gruß, Mad Max
Bitte warten ..
Mitglied: artus-Excalibur
16.03.2011 um 14:05 Uhr
Moin Max,

super! Genau das was ich gesucht habe

Vielen Dank für Deine Hilfe und sorry für die späte Antwort!
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Access 2010 Pivot Table Export keine Werte (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Windows 7
Temporäre Dateien im Profilordner belegen mehrere 100 GB (6)

Frage von sirhc4022 zum Thema Windows 7 ...

Batch & Shell
Powershell Skript Ändern - Mehrere Hotfix IDs finden (1)

Frage von pixel0815 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Rogue Access Point (21)

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

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (13)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...