[GastForen Programmierung/Entwicklung PHP und MySQL Sortierungsabfrage

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Sortierungsabfrage

HackTack
Beiträge gesamt: 11

25. Jun 2007, 14:28
Beitrag # 1 von 7
Bewertung:
(1462 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Möchte nach folgenden Werten sortieren, als erstes nach Anmeldeschluss, Start und dann Preis. Dies sind alles Datumswerte. Wenn nun Anmeldeschluss "NULL" bzw. leer ist, dann sortiere nach Start und wenn dieses leer ist nach Preis.

sollte ich das mit Unterabfragen realisieren? Kann ich im Query eigentlich mit IF arbeiten ?

Danke
X

Sortierungsabfrage

oesi50
  
Beiträge gesamt: 2315

25. Jun 2007, 15:22
Beitrag # 2 von 7
Beitrag ID: #298740
Bewertung:
(1451 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo HackTack,

ganz einfach
Code
... 
ORDER BY Anmeldeschluss, Start, Preis
...


Antwort auf: Kann ich im Query eigentlich mit IF arbeiten ?


Ja

Antwort auf: sollte ich das mit Unterabfragen realisieren?


nein


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#298722]

Sortierungsabfrage

HackTack
Beiträge gesamt: 11

25. Jun 2007, 16:08
Beitrag # 3 von 7
Beitrag ID: #298750
Bewertung:
(1442 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke!

Ich habe das Problem, dass ich zunächst alle Datensätze bekomme, die den Wert NULL haben. Die sollen zum Schluss, wenn keine Datumswerte vorhanden sind hinzugefügt werden.
Ich versuche gerade deas Problem so zu lösen:

Code
 select a.ID,  
a.NAME,
if (DATE_FORMAT(a.ENDE,'%d.%m.%Y') <> NULL, 0,1)as `ENDE`,
if (DATE_FORMAT(a.START,'%d.%m.%Y') <> NULL, 0,1) as `START`,
if (DATE_FORMAT(a.PREISVERLEIHUNG,'%d.%m.%Y') <> NULL, 0,1) as `PREIS`,
if (DATE_FORMAT(a.ENDE,'%d.%m.%Y') = NULL, 0,1) as `LEER`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz` as a, `bzbereich` as ab


Erst prüfe ich ob die Werte <> "NULL" sind, wenn das der Fall ist, zeige mir die zuerst. Wie bekomme ich jetzt die restlichen Daten, indenen kein Datumswert vorhanden sind abgefragt?


als Antwort auf: [#298740]

Sortierungsabfrage

oesi50
  
Beiträge gesamt: 2315

25. Jun 2007, 16:46
Beitrag # 4 von 7
Beitrag ID: #298763
Bewertung:
(1435 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
so in der Art könnte dein Problem gelöst werden:

Code
( 
SELECT *
FROM `test`
WHERE START IS NOT NULL
AND ENDE IS NOT NULL
AND Preisverleihung IS NOT NULL
ORDER BY START , Ende, Preisverleihung
)
UNION
(
SELECT *
FROM `test`
WHERE START IS NULL
OR ENDE IS NULL
OR Preisverleihung IS NULL
ORDER BY START , Ende, Preisverleihung
)



Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#298750]

Sortierungsabfrage

HackTack
Beiträge gesamt: 11

26. Jun 2007, 12:54
Beitrag # 5 von 7
Beitrag ID: #298941
Bewertung:
(1418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe es nun so gelöst, leider sortiert er nicht nach a.ENDE. Warum sortiert er nicht nach diesem Datumswert?

$sql = "(select
a.ID,
a.PREIS,
a.NAME,
a.START,
DATE_FORMAT(a.ENDE,'%d.%m.%Y') as `ENDE`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz` as a, `bz_bereich` as ab
WHERE 1
AND a.ENDE > NOW()
AND ab._ID=a.ID
AND ab.BEREICH_ID=".$bereich."
AND a.PROBE=0
ORDER BY a.ENDE DESC)
UNION
(select
a.ID,
a.PREIS,
a.NAME,
a.START,
DATE_FORMAT(a.ENDE,'%d.%m.%Y') as `ENDE`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz_award` as a, `bz_bereich` as ab
WHERE a.START > NOW()
AND ab._ID=a.ID
AND ab.BEREICH_ID=".$bereich."
AND a.PROBE=0
ORDER BY a.START )
UNION
(select
a.ID,
a.PREIS,
a.NAME,
a.START,
DATE_FORMAT(a.ENDE,'%d.%m.%Y') as `ENDE`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz_award` as a, `bz_bereich` as ab
WHERE a.PREIS > NOW()
AND ab._ID=a.ID
AND ab.BEREICH_ID=".$bereich."
AND a.PROBE=0
ORDER BY a.PREIS)
UNION
(select
a.ID,
a.PREIS,
a.NAME,
a.START,
DATE_FORMAT(a.ENDE,'%d.%m.%Y') as `ENDE`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz_award` as a, `bz_bereich` as ab
WHERE a.ENDE < NOW()
AND a.START < NOW()
AND a.PREIS < NOW()
AND ab._ID=a.ID
AND ab.BEREICH_ID=".$bereich."
AND a.PROBE=0
ORDER BY a.ENDE)
UNION
(select
a.ID,
a.PREIS,
a.NAME,
a.START,
DATE_FORMAT(a.ENDE,'%d.%m.%Y') as `ENDE`,
UNIX_TIMESTAMP(a.ENDE) as `TS_ENDE`,
UNIX_TIMESTAMP(a.DATUM) as `TS`,
a.KURZTEXT
from `bz_award` as a, `bz_bereich` as ab
WHERE a.ENDE is NULL
AND a.START is NULL
AND a.PREIS is NULL
AND ab._ID=a.ID
AND ab.BEREICH_ID=".$bereich."
AND a.PROBE=0
ORDER BY a.ID)
";


als Antwort auf: [#298763]

Sortierungsabfrage

oesi50
  
Beiträge gesamt: 2315

26. Jun 2007, 13:47
Beitrag # 6 von 7
Beitrag ID: #298961
Bewertung:
(1411 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
3. Fragen

Warum erzeugst du jedesmal ein kartesisches Produkt?

Wie soll denn das Ergebnis aussehen? Hast du ein Beispiel?

Sollen wirklich alle Termine von heute ausgeblendet werden?


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#298941]

Sortierungsabfrage

oesi50
  
Beiträge gesamt: 2315

26. Jun 2007, 14:15
Beitrag # 7 von 7
Beitrag ID: #298967
Bewertung:
(1409 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es wird kein kartesisches Produkt erzeugt.
Ich habs nur nicht gleich gesehen(ist doch ganz schön unübersichtlich)


Grüße Oesi
Ich weiß, dass ich nicht weiß... (Sokrates)


als Antwort auf: [#298961]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AP6

Neuste Foreneinträge


Exel ohne leeres Tabellenblatt starten

Illustrator Skript Übersatztext - Hilfe benötigt

[GREP] beliebige Zeichen finden und durch selbe Anzahl an Leerzeichen oder Anzahl Zeichen "x" ersetzen

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

InDesign 2021 – Suchen/Ersetzen: Farbe

Langsamer MacMini

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Balken hinter einen Bildteil

Geteiltes Album

Verschiedene Netzwerke Handeln
medienjobs