Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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 IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL - Agregatfunktion und Gruppierung

Frage Entwicklung Datenbanken

Mitglied: mike55

mike55 (Level 1) - Jetzt verbinden

02.02.2011 um 22:42 Uhr, 3512 Aufrufe, 4 Kommentare

Hallo zusammen, Könnt ihr mir vielleicht weiterhelfen?

Dazu zuerst ein Beispiel:

SELECT table1.*, max(table2.datum) 
FROM table1 LEFT JOIN table2 ON table1.uid = table2.table1_uid 
GROUP BY table1.*
Wie ihr vielleicht ja wisst, funktioniert das nicht, da ich nicht nach einem Wildcard gruppieren kann. Die Tabelle 1 hat jedoch 100 Spalten, das heißt ich komme nicht darum herum, diese 100 Spalten zwei mal nieder zu schreiben? (Einmal nach SELECT und einmal bei GROUP BY)
Gibt es auch noch eine andere Möglichkeit?

Danke vielmals,
Michael.
Mitglied: mein-nick-ist-zu-kurz
02.02.2011 um 22:56 Uhr
Hallo,

ich kann dir zwar keine andere Möglichkeit nennen,
aber vlt. sagst du mal in etwa, was die Tabellen enthalten bzw. was nach dem select rauskommen soll.
Weil nach 100 Spalten zu gruppieren scheint für mich auf den ersten Blick ziemlich unsinnig. ( Berichtige mich, wenn ich falsch liege! )

Du willst eig. nur zu jeder Zeile in Tab.1 den Max.-Wert zu tab2.Datum?

David

Edit: subselect?
Bitte warten ..
Mitglied: MadMax
03.02.2011 um 00:08 Uhr
Moin Michael,

klar gibts die. Du gruppierst ja eigentlich nur in table2, also kannst Du das dort erledigen und die Verknüpfung mit table1 dann erledigen:
01.
SELECT table1.*, tab2.datum 
02.
FROM table1 LEFT JOIN (select table1_uid, max(datum) as datum from table2 group by table1_uid) as tab2 ON table1.uid = tab2.table1_uid 
Oder Du liest die Werte aus table1 und holst dann genau dazu den aggregierten Wert:
01.
SELECT table1.*, (select max(datum) from table2 where table1_uid = table1.uid) 
02.
FROM table1
Du hast nicht verraten, welche DB Du verwendest, aber eins davon sollte bestimmt auch bei Dir laufen.

Gruß, Mad Max
Bitte warten ..
Mitglied: nxclass
03.02.2011 um 09:45 Uhr
... schon mal versucht das GROUP einfach weg zu lassen ?
01.
SELECT table1.*, max(table2.datum)  
02.
FROM table1 LEFT JOIN table2 ON table1.uid = table2.table1_uid 
Bitte warten ..
Mitglied: mike55
04.02.2011 um 14:54 Uhr
@Mad Max,

vielen, vielen Dank, ich verwende die zweite Variante und sie funktioniert wundervoll. Ich wusste gar nicht dass man zwischen Select & From auch Unterabfragen machen kann. Meine Datenbank ist Interbase.

@mein-nick-... & @nxclass:

Die Beziehung ist table1 1:n table 1, weswegen ich die Group gebraucht hätte. Doch die Variante von Mad Max funktioniert gut.

Danke euch allen.
Michael.
Bitte warten ..
Ähnliche Inhalte
Google Android
gelöst GMail: Gruppierung von Mails (2)

Frage von honeybee zum Thema Google Android ...

VB for Applications
gelöst Gruppierung von Zeilen mit einer bestimmten Farbe mit Makro (5)

Frage von Mimindt zum Thema VB for Applications ...

Windows Server
SQL-Errorlogs (3)

Frage von kellbidden zum Thema Windows Server ...

Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Neue Wissensbeiträge
Firewall

PfSense Repository für Version 2.3.x

(2)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(4)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Windows 10

Microsoft veröffentlicht das "Fall Creators Update

(10)

Information von Penny.Cilin zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (20)

Frage von sunics zum Thema Hosting & Housing ...

Windows 7
gelöst Windows 7 Anmeldedomäne festlegen (13)

Frage von flotaut zum Thema Windows 7 ...