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

Umsetzung mit SQL möglich?

Frage Entwicklung

Mitglied: kopie0123

kopie0123 (Level 2) - Jetzt verbinden

09.01.2010, aktualisiert 15:42 Uhr, 4140 Aufrufe, 3 Kommentare

Hallo zusammen,

gestern rief mich ein Freund an und fragte mich, ob man folgendes rein mit SQL umsetzen könnte:

Struktur der Tabelle:

id (int), fahrzeugid (int), Name(varchar), start(datetime), ende(datetime)


Abgespeichert werden die Einsätze von Fahrzeugen einer Firma. Die Fragestellung ist nun, wann und welche Fahrzeuge gleichzeitig im Einsatz waren.

Mir ist keine Möglichkeit rein über SQL eingefallen, habt ihr eine Idee?

Meine Auswertungsidee findet in der benutzen Programmiersprache statt: Schleifen und Vergleiche.

Danke für eure Antworten,

Gruß Stinger
Mitglied: dog
09.01.2010 um 16:17 Uhr
Das ist in der Tat mal eine Interessante Frage.

Das hat bei mir funktioniert:
01.
SELECT a.*,  
02.
(SELECT GROUP_CONCAT(b.id) FROM tbl1 AS b WHERE b.start >= a.start AND b.start <= a.end AND b.id != a.id ) AS same_id 
03.
FROM tbl1 AS a
Mit einer Einschränkung: So findet es nur Fahrzeuge, die nach dem in der aktuellen Abfrage gestartet sind - aber das sollte ja leicht zu korrigieren sein

09453de6790946e090262c43eec33763 - Klicke auf das Bild, um es zu vergrößern

Grüße

Max
Bitte warten ..
Mitglied: filippg
09.01.2010 um 16:23 Uhr
Hallo,

für reines ANSI-SQL fällt mir da nichts ein. Aber die meisten DBMS können ja mehr. In MS SQL könnte man z.B. eine Stored Procedure erstellen, die mit einem Cursor alle Datensätze nacheinander durchgeht (die von dir erwähnte Schleife) und alle anderen auf Überlappung vergleicht.

Gruß

Filipp

PS: Fällt mir gerade doch noch was ein: Ein interessanter Ansatz rein in SQL könnte über Joins gehen. Du kannst die Tabelle mit sich selbst Joinen, und als Join-Kriterium eine Überlappung der Zeit angeben.
Bitte warten ..
Mitglied: perseues
10.01.2010 um 11:16 Uhr
Hallo,

hört sich nach "Kreuztabelle" an. Wie filippg schrieb, dürfte das mit einer Prozedur am besten zu lösen sein. Da Du nicht schreibst für welches DBMS, hier mal ein Beispiel für den MS SQL Server.

Grüße p
Bitte warten ..
Ähnliche Inhalte
Microsoft
gelöst Verbindung zu MS SQL Server 2016 nicht möglich (5)

Frage von Baitahook zum Thema Microsoft ...

Datenbanken
SQL Anywhere: FOREACH möglich? (4)

Frage von BirdyB zum Thema Datenbanken ...

Neue Wissensbeiträge
Rechtliche Fragen

Heiseshow, live ab 12 Uhr: Steht die Vorratsdatenspeicherung vor dem Aus?

Tipp von sabines zum Thema Rechtliche Fragen ...

Outlook & Mail

Outlook Probleme nach Juni Updates - KB3203467 ist Schuld

(1)

Information von Deepsys zum Thema Outlook & Mail ...

Microsoft Office

Windows 7, Office 2016 RTM und Updates ohne WSUS

Tipp von chgorges zum Thema Microsoft Office ...

E-Mail

Thunderbird 52 hat Druckprobleme

(3)

Tipp von magicteddy zum Thema E-Mail ...

Heiß diskutierte Inhalte
Server-Hardware
Einem Stromausfall entgegen wirken (22)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...

DSL, VDSL
gelöst Ständige Störungen - Internet (12)

Frage von gamerff zum Thema DSL, VDSL ...