[SQL] SELECT query error

Pagina: 1
Acties:

  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 13-02 11:15
Ik weet het echt niet meer. Ik heb gezocht via google, de zoekfunctie, en in de mysql handleiding. Op het moment dat ik deze sql query uitvoer
SQL:
1
 SELECT *,DATE_FORMAT(van_datum,'%d-%m-%Y') AS correct_van_datum, DATE_FORMAT(DATE_ADD(van_datum, INTERVAL aantal_dagen DAY),'%d-%m-%Y') AS correct_tot_datum FROM agenda WHERE CURDATE()<=correct_tot_datum ORDER BY van_datum desc LIMIT 20 


krijg ik deze error

Unknown column 'correct_tot_datum' in 'where clause'

Het is waarschijnlijk een heel simpel iets, maar ik weet het echt niet meer. Het beste wat ik ervan kan maken is dat het iets met
DATE_FORMAT(DATE_ADD(van_datum, INTERVAL aantal_dagen DAY),'%d-%m-%Y') AS correct_tot_datum
te maken heeft. Het liefst heb ik een documentje waar in staat wat ik fout doe, zodat jullie het niet hoeven voor te kouwen.

  • TweakBoy
  • Registratie: Augustus 2001
  • Laatst online: 09-02 17:55

TweakBoy

---

je kunt niet een vergelijking maken in de whereclause wanneer dat kolom niet bestaat..

---


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 14-02 11:11

Dido

heforshe

De fout zit in je WHERE clause, dus zou ik daar maar eens kijken.

De alias die je in de SELECT aangeeft herkent ie kennelijk niet in de WHERE, dus zul je in de WHERE misschien niet de alias moeten gebruiken, maar
DATE_FORMAT(DATE_ADD(van_datum, INTERVAL aantal_dagen DAY),'%d-%m-%Y')
ipv
correct_tot_datum

Wat betekent mijn avatar?


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

De select clausule wordt na de where uitgevoerd, dus een alias uit de select kun je nooit in de where gebruiken.

Who is John Galt?


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 16:25
Uit de MySQL reference:
A.5.4. Problems with Column Aliases
You can use an alias to refer to a column in GROUP BY, ORDER BY, o rHAVING clauses. Aliases
can also be used togive columns betternames:
SELECT SQRT(a*b) AS root FROM tbl_name GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
Standard SQL doesn't allow you to refer to a column alias in a WHERE clause.This restriction is imposed because when the WHERE code is executed, the column value may not yet be determined.

Roomba E5 te koop


  • satyriasis
  • Registratie: Januari 2000
  • Laatst online: 13-02 11:15
Dido schreef op donderdag 27 juli 2006 @ 16:50:
De fout zit in je WHERE clause, dus zou ik daar maar eens kijken.

De alias die je in de SELECT aangeeft herkent ie kennelijk niet in de WHERE, dus zul je in de WHERE misschien niet de alias moeten gebruiken, maar
DATE_FORMAT(DATE_ADD(van_datum, INTERVAL aantal_dagen DAY),'%d-%m-%Y')
ipv
correct_tot_datum
Ga ik maar eens ff proberen |:( Wel hopeloos dat ik dat zelf niet heb kunnen bedenken }:O

edit:

Stom rund dat ik ben, het werkt hoor jongens en meisje. bedankt voor de snelle hulp, ben er pas 2 weken mee bezig ( gelukkig niet fulltime 8) )

[ Voor 15% gewijzigd door satyriasis op 27-07-2006 16:56 ]


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 14-02 11:11

Dido

heforshe

Het is warm, zullen we maar denken ;)

Wat betekent mijn avatar?


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 14-02 11:11

Dido

heforshe

satyriasis schreef op donderdag 27 juli 2006 @ 16:54:
edit:

het werkt hoor jongens en meisje.
Meisje? Waar!? Mis ik iets?

Wat betekent mijn avatar?

Pagina: 1