Hi,
Ik zit met het volgende:
In mijn query tel ik een aantal columns op. De uitkomst wil ik graag in de where clause gebruiken maar krijg vervolgens de foutmelding: "There was a MySQL error: Unknown column 'voorraad' in 'where clause'".Code:SELECT (`voorraad_vestiging1` + `voorraad_vestiging2` + `voorraad_vestiging3`) AS `voorraad` FROM `tabel` WHERE `voorraad` > 0
Is het mogelijk om het bovenstaande in een query te regelen? Zo ja, hoe?
Alvast bedankt!
- MySQL optelsom in where clause gebruiken
-
04-07-2012, 19:47 #1
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
MySQL optelsom in where clause gebruiken
-
-
04-07-2012, 19:54 #2
- Berichten
- 750
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
Heb je een voorbeeld van de data welke er instaat?
-
04-07-2012, 19:56 #3
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
De velden zijn uiteraard van het type INT
-
04-07-2012, 19:59 #4
- Berichten
- 750
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
Ik ken je de rest van de data niet wellicht dien wel wat te gaan doen met een group by in de vorm van
Code:SELECT SUM(voorraad_vestiging1) as sum_voorraad_vestiging1, SUM(voorraad_vestiging2) as sum_voorraad_vestiging2, SUM(voorraad_vestiging3) as sum_voorraad_vestiging3, FROM table GROUP BY voorraad_vestiging1, voorraad_vestiging2, voorraad_vestiging3
-
04-07-2012, 20:02 #5
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
SUM() telt het totaal van alle rijen in de Query.
Ik tel van een enkele rij slechts de kolommen op waarvan ik de uitkomst wil gebruiken in de where clause.
Ik ben bang dat ik moet werken met een virtuele column. Helaas nog geen ervaring mee dus dat moet ik gaan uitzoeken.
-
04-07-2012, 20:07 #6
- Berichten
- 750
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
Klopt dat SUM dat doet maar dat wil je precies bereiken nu aangezien we compleet langs elkaar heen lopen nu aangezien je compleet niet duidelijk bent met wat je wilt.
-
04-07-2012, 20:11 #7
- Berichten
- 935
- Lid sinds
- 17 Jaar
Re: MySQL optelsom in where clause gebruiken
Voor iedereen die er wat van wilt leren, zo moet het:
SELECT
(`voorraad_vestiging1` + `voorraad_vestiging2` + `voorraad_vestiging3`) AS `voorraad`
FROM `tabel`
WHERE (`voorraad_vestiging1` + `voorraad_vestiging2` + `voorraad_vestiging3`) > 0
-
04-07-2012, 20:12 #8
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Re: MySQL optelsom in where clause gebruiken
Toen ik het zag... Pf.. *slaap gebrek*
-
04-07-2012, 20:44 #9
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: MySQL optelsom in where clause gebruiken
SELECT
(`voorraad_vestiging1` + `voorraad_vestiging2` + `voorraad_vestiging3`) AS voorraad
FROM `tabel`
HAVING voorraad > 0
Dit voorkomt dat je de select velden dubbel moet opnoemen (met kans op logische fouten bij wijzigingen) en omdat je nu toch een expressie in de where hebt, zal toch geen index gebruikt worden.
Aanvullend bericht:
En bij grote tabellen zou je wellicht nog een trigger kunnen toevoegen om de 3 velden te totaliseren en redundant op te slaan in het record. Dan kun je er een index op leggen en gaat het nog een stuk sneller.Laatst aangepast door John Timmer : 04-07-2012 om 20:46 Reden: Automatisch samengevoegd.
-
05-07-2012, 21:24 #10
- Berichten
- 935
- Lid sinds
- 17 Jaar
Re: MySQL optelsom in where clause gebruiken
Hoi John,
Inderdaad je hebt gelijk. Having is ook een prima oplossing!! Mooie aanvulling
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic