php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-07-2007, 22:43
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard Abfrageschwierigkeiten ...

Guten Abend liebe Community,

ich bin dabei, ein System zu schreiben, was Einsätze auf Leute verteilt. Hierbei sind drei Faktoren zu berücksichtigen: Das Alter, Die Priorität sowie die eventuell vereinbarte Reaktionszeit.

Die Tabellenstruktur:

incident
- incidentID INTEGER
- incidentCreated INTEGER (UNIX-Timestamp)
- incidentPriority ENUM (1,2,3)
- incidentContract INTEGER

contract
- contractID INTEGER
- contractReaction INTEGER (in Stunden)

Ich weiß leider nicht, wie ich die Abfrage anders gestalten kann als so:

SELECT incidentID
FROM incident
LEFT JOIN contract c ON (c.contractID = incidentContract)
ORDER BY incidentCreated, contractReaction, incidentPriority

Vielen Dank schon jetzt.

Viele Grüße
Someday aka Henning
Mit Zitat antworten
  #2 (permalink)  
Alt 18-07-2007, 23:41
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Abfrageschwierigkeiten ...

Und was ist das Problem mit der Abfrage? Sieht doch okay aus...

EXPLAIN
hilft, wenn Indizes fehlen~
Mit Zitat antworten
  #3 (permalink)  
Alt 18-07-2007, 23:50
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Guten Abend Ghostgambler,

das Problem ist, in welcher Reihenfolge er sortieren muss.
Ähm, ... oh, ich merk, dass das irgendwie doch soweit hinkommt.
Aber es ist doch richtig, dass die Suche nur die 2. und 3. Suchfelder bearbeitet, wenn 2 mal das gleiche erste Feld da ist, oder?

VG
Henning
Mit Zitat antworten
  #4 (permalink)  
Alt 19-07-2007, 01:59
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Someday
Aber es ist doch richtig, dass die Suche nur die 2. und 3. Suchfelder bearbeitet, wenn 2 mal das gleiche erste Feld da ist, oder?
Ja, intern in mysql dürfte das so implementiert sein.
Mit Zitat antworten
  #5 (permalink)  
Alt 19-07-2007, 13:00
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Ghostgambler,

okay, dann stehe ich vor einem gewissen Punkt... Wie kriege ich dann genau die Abfrage so hin, dass der Datensatz mit der ältesten Erstellung, der niedrigsten Reaktionszeit sowie mit der niedrigsten Priorität (3 = niedrig, 1 = hoch) erhalte?

Kann mir einer auf die Sprünge helfen?

Viele Grüße
Henning
Mit Zitat antworten
  #6 (permalink)  
Alt 19-07-2007, 14:16
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

SORT BY ... ASC|DESC
Manual weiß mehr...
Mit Zitat antworten
  #7 (permalink)  
Alt 19-07-2007, 15:01
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo Ghostgambler,

nach Suche auf http://dev.mysql.com/ finde ich leider nichts zu dem Thema :-(

Viele Grüße
Henning
Mit Zitat antworten
  #8 (permalink)  
Alt 19-07-2007, 15:07
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://dev.mysql.com/doc/refman/5.1/en/select.html
Mit Zitat antworten
  #9 (permalink)  
Alt 19-07-2007, 15:08
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Heißt natürlich auch ORDER BY
http://dev.mysql.com/doc/refman/5.1/de/select.html
Mit Zitat antworten
  #10 (permalink)  
Alt 19-07-2007, 15:10
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard Ahh....

Ah, okay,

dann hab ich es gefunden ;o)

Sehe ich es richtig, dass das Statement so aussehen kann:

SELECT ... FROM .... WHERE ... ORDER BY a ASC, b DESC ??

Aber das Problem besteht immer noch, dass dann nciht alle drei (im Beispiel nur 2) Spalten berücksichtigt werden?!

Viele Grüße
Henning
Mit Zitat antworten
  #11 (permalink)  
Alt 19-07-2007, 15:46
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Ahh....

Zitat:
Original geschrieben von Someday
Sehe ich es richtig, dass das Statement so aussehen kann:

SELECT ... FROM .... WHERE ... ORDER BY a ASC, b DESC ??
Ja

Zitat:
Aber das Problem besteht immer noch, dass dann nciht alle drei (im Beispiel nur 2) Spalten berücksichtigt werden?!
Ne, die werden nur angegeben, damit der Query länger wird, benutzt werden sie natürlich nicht.
Mit Zitat antworten
  #12 (permalink)  
Alt 19-07-2007, 16:04
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Re: Ahh....

Zitat:
Original geschrieben von ghostgambler
Ja


Ne, die werden nur angegeben, damit der Query länger wird, benutzt werden sie natürlich nicht.
Ist das jetzt ernst gemeint oder nicht?!? Ich habe diese Information, dass erst der 2. ORDER-Schlüssel genutzt wird, wenn 2 gleiche beim ersten ORDER-Schlüssel vorhanden sind.

Viele Grüße
Henning
Mit Zitat antworten
  #13 (permalink)  
Alt 19-07-2007, 16:40
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, und? Alles andere macht doch auch keinen Sinn. Was soll denn Deiner Meinung nach passieren, wenn der Datensatz mit der ältesten Erstellung nicht die niedrigste Reaktionszeit oder Priorität hat?
Mit Zitat antworten
  #14 (permalink)  
Alt 19-07-2007, 16:42
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das war purer Sarkasmus...

Vielleicht solltest du dein "Problem" mal mit Beispiel-Dump, Query und erwünschter Lösung verdeutlichen, anstatt hier mit irgendwelchen Begriffen und Wünschen um dich zu werfen, die niemand versteht~
Mit Zitat antworten
  #15 (permalink)  
Alt 19-07-2007, 20:48
Someday
 Newbie
Links : Onlinestatus : Someday ist offline
Registriert seit: Jun 2005
Beiträge: 126
Someday ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OK, also


Meine derzeitige Query:

PHP-Code:
SELECT `technicianIncidentID`, `technicianIncidentCreated`, `technicianIncidentPriority`, `contractReaction`
FROM `technicianIncident`
LEFT JOIN `contractc ON c.contractID technicianIncidentContract )
WHERE `technicianIncidentStatus` = '0'
ORDER BY `technicianIncidentCreatedASC, `technicianIncidentPriorityASC, `contractReactionASC 
Meine derzeitigen Daten:

incidentID | incidentCreated | incidentPriority | contractReaction
4 | 1184870219 | 2 | NULL
5 | 1184870321 | 2 | 1
6 | 1184870346 | 3 | NULL
7 | 1184870495 | 2 | 1

Das Ergebnis sollte sein:

incidentID | incidentCreated | incidentPriority | contractReaction
5 | 1184870321 | 2 | 1
7 | 1184870495 | 2 | 1
6 | 1184870346 | 3 | NULL
4 | 1184870219 | 2 | NULL

Das Ziel ist, dass ich immer den ältesten Datensatz mit der geringsten Reaktionszeit und der höchsten Priorität zuerst bearbeiten möchte.

Viele Grüße
Henning
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:50 Uhr.