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, 4361 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 ..
Ähnliche Inhalte
Windows Server
SQL-Runtime Lizenzierung auf VM mit HA Failover (2)

Frage von Tharen zum Thema Windows Server ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

Microsoft
gelöst Licensing Server SQL 2014 (8)

Frage von TECHGENE zum Thema Microsoft ...

Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (16)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (16)

Frage von theoberlin zum Thema Windows Server ...