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

Gibt es dafür ein SQL-Query?

Frage Entwicklung Datenbanken

Mitglied: conrado

conrado (Level 1) - Jetzt verbinden

27.03.2007, aktualisiert 22:02 Uhr, 4351 Aufrufe, 6 Kommentare

Hallo Forum,

bin kein Datenbankexperte, deshalb frage ich mich ob es für mein Problem überhaupt ein SQL-Query gibt oder ob ich mich eines anderen Weges bedienen muss, der leider viel umständlicher sein wird.

Folgende Tabelle:

o | k | ende |
1 | 1 | 2014 |
2 | 1 | 2013 |
3 | 1 | 2017 |
1 | 2 | 2011 |
2 | 2 | 2014 |
3 | 2 | 2013 |
1 | 3 | 2006 |
2 | 3 | 2005 |
3 | 3 | 2004 |

Die Abfrage soll alle k ausspucken, bei denen alle o ein ende kleiner 2007 haben.
Das Ergebnis wäre '3'.
Ich habe schon mit einigen GROUP und WHERE-Ausdrücken herumprobiert, bin aber zu keiner Lösung gekommen.
Vielleicht hat hier jemand eine Idee?

Danke im Voraus,

Conrad
Mitglied: filippg
27.03.2007 um 04:05 Uhr
SELECT o FROM Tabelle WHERE ende < 2007 MINUS SELECT o FROM Tabelle WHERE ende >= 2007 sollte eigentlich das gewünschte Ergebnis liefern.
Näheres auch unter http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/index.htm

Filipp

Edit: os sollen natürlich ks sein. Aber mit dieser kleinen Änderung finde ich sollte das Ergebnis ganz gut hinkommen.
Bitte warten ..
Mitglied: Guenni
27.03.2007 um 06:19 Uhr
@12434

Hi,

da in dieser Tabelle all o und alle k das gleiche Ende haben,
genügt eigentlich "select k from tabelle where ende < 2007".

Oder soll das Ergebnis 3 die Anzahl k sein?

"select count(k) as "Anzahl k" from tabelle where ende < 2007".

Grüße
Günni
Bitte warten ..
Mitglied: conrado
27.03.2007 um 11:16 Uhr
Hallo,

danke erstmal für euren Mühen. O sind Ordner und K sind Kartons. Es sollen alle Kartons angegeben werden, in denen !alle! Ordner kleiner 2007 sind. In diesem Falle ist das Ergebnis Karton 3. Das Problem ist halt irgendwie das gruppieren und überprüfen ob bei allen Elementen mit k=1, k=2, k=3 auch bei allen o das ende kleiner 2007 ist.
Bitte warten ..
Mitglied: Biber
27.03.2007 um 12:49 Uhr
Moin conrado,

hier muss ich mich mal als Mod einmengen, weil... so wird das Ergebnis unbefriedigend bleiben.

  • Wenn es um SQL-Queries geht, bitte das konkrete Datenbank-Blech angeben, das darunterliegt (Access, mySQL, Oracle...etc).
  • bei Deiner Fragestellung ist nicht klar, ob als Ergebnis nun alle relevanten Datensätze (mit allen Feldern) rausfallen sollen oder das Ziel ein "Select Distinct (Kartons)..." , also im Ergebnis ein Resultset mit in Deinem Fall einem Feld k Inhalt 3 sein soll oder
  • so etwas wie ein "SELECT * FROM kartons GROUP BY k HAVING Max(ende) < 2007"

Deine letzte Erläuterung mit "k sind Kartons und o sind Ordner" hilft zwar schon ein bisschen weiter als der Eröffnungsthread, aber richtig transparent wird mir das Datenmodell noch nicht ganz. Bzw. das, was dort fachlich/inhaltlich abgebildet wird.

Wenn das alles zu weit führen würde, dann gehe bitte den oben begonnen Weg weiter und poste zu der Skizze "alle Datensätze" noch zusätzlich die Skizze "Gewünschtes Ergebnis der Abfrage".

Danke
Biber
Bitte warten ..
Mitglied: Guenni
27.03.2007 um 21:30 Uhr
@conrado

Hi,

jetzt wird einiges klarer, glaub' ich zumindest.

Du hast die Ordner 1,2,3,1,2,3 usw. genannt.
Das macht die Sache einigermaßen unklar. Besser wäre es, die Ordner
fortlaufend zu nummerieren.

Dann gehe hin, und ändere bei einigen Datensätzen, als Test, das Ende(unter 2007),
und führe folg. Befehl aus:

SELECT o.o AS Ordner, k.k AS "In Karton", o.ende as "Ordner Ende"
FROM tabelle o, tabelle k
WHERE o.ende <2007
AND o.ende = k.ende


Somit erhalte ich alle Kartons, in denen Ordner < 2007 stecken.

Grüße
Günni
Bitte warten ..
Mitglied: conrado
27.03.2007 um 22:02 Uhr
Danke für eure Hilfe,

dass ich ein paar Infos zu wenig gegeben habe, habe ich mir auch schon gedacht.
Günni hat das Problem, das Query von Biber funktioniert genauso gut.

Ich habe mich nochmal mit GROUP BY beschäftigt und verstehe jetzt auch wie es funktioniert, danke nochmal für eure Hilfe mit Lerneffekt.


Grüße
Conrad
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...