Gegooled maar daar was niets te vinden.
Op GOT vond ik alleen vragen als: "werken met database tabellen die dezelfde kolom namen bevatten", wat voor mij dus n.v.t. is.
Ik heb namelijk de volgende query:
Nu is die query ontzettend groot, uitvoeren van query duurt echter niet lang. Wat ik wil is dus enkel verduidelijking van m'n query code.
Het volgende stukje zie je meerdere keren in mijn query terug komen:
Nu had ik gedacht, doe ik dit:
Maar dan krijg ik:
MySQL retourneerde: Documentatie
#1054 - Unknown column 'ncommissiondate' in 'where clause'
Nu snap ik die error maar al te goed. Normaal gebruik je aliassen alleen om op te sorteren, groupen. Hoe ik echter toch de alias "ncommissiondate" gebruiken?
Op GOT vond ik alleen vragen als: "werken met database tabellen die dezelfde kolom namen bevatten", wat voor mij dus n.v.t. is.
Ik heb namelijk de volgende query:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| SELECT YEAR( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) AS nyear, WEEK( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) AS nweek, UNIX_TIMESTAMP( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) AS ncommisiondate FROM contract AS c, deliveryproduct AS dpr, supplier AS s WHERE dpr.ncontractid = c.ncontractid AND UNIX_TIMESTAMP( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) >=1083362400 AND UNIX_TIMESTAMP( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) <=1114898399 AND c.nsupplierid = s.nsupplierid ORDER BY nyear, nweek |
Nu is die query ontzettend groot, uitvoeren van query duurt echter niet lang. Wat ik wil is dus enkel verduidelijking van m'n query code.
Het volgende stukje zie je meerdere keren in mijn query terug komen:
SQL:
1
2
| DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) |
Nu had ik gedacht, doe ik dit:
SQL:
1
2
3
4
5
6
7
8
9
10
11
| SELECT YEAR(FROM_UNIXTIME(ncommisiondate)) AS nyear, WEEK(FROM_UNIXTIME(ncommisiondate)) AS nweek, UNIX_TIMESTAMP( DATE_ADD( FROM_UNIXTIME( c.ncontractdate ) , INTERVAL( c.nconditions + s.nconditions ) DAY ) ) AS ncommisiondate FROM contract AS c, deliveryproduct AS dpr, supplier AS s WHERE dpr.ncontractid = c.ncontractid AND ncommisiondate >=1083362400 AND ncommisiondate <=1114898399 AND c.nsupplierid = s.nsupplierid ORDER BY nyear, nweek |
Maar dan krijg ik:
MySQL retourneerde: Documentatie
#1054 - Unknown column 'ncommissiondate' in 'where clause'
Nu snap ik die error maar al te goed. Normaal gebruik je aliassen alleen om op te sorteren, groupen. Hoe ik echter toch de alias "ncommissiondate" gebruiken?