Beste php'ers ik heb een tabel monitortabel en haal daar onder andere uit de kolom result het resultaat 11 op. Maar in die kolom staat bijv ook resultaatcode 12 nu wil ik graag meerdere resultaten uit deze kolom halen maar deze wel appart laten zien odat ik er boven kan zetten wat elke resultaatcode betekent.Maar ik kom der niet echt uit. Welke phper kan mij helpen
SELECT sum(jaarbedrag) as jaarbedrag, count(result) as positieven, p.naam FROM ucs.monitortabel m join project p on p.pro_id = m.project_id where tijdstip like '$datum%' and result like '11' GROUP BY project_id
Dan moet je die kolom uit je where clause (and result like '11') verwijderen, zodat er geen restrictie ligt op de waarde die 'result' heeft. De enige restrictie is nu nog de datum...
Offtopic:
like '$datum%' is volgens mij niet nodig. Je kunt met YEAR(), MONTH() en DAY() exact aangeven welk deel van de datum relevant is. Met deze functies is er sneller te zoeken en kun je ook gebruik maken van indexen. Dat kan de boel nog verder versnellen. LIKE lijkt mij dan ook overbodig.
Kijk blanch als ik doe wat jij zegt dan krijg ik 1 kolom met alle resultaten bijelkaar opgetelt terwijl ik voor iedere resultaat code een apparte kolom wil.
result like '11' kan dus nooit goed zijn in deze query. In de eerste plaats is LIKE niet op zijn plaats, dat hoort een = te zijn, en in de tweede plaats kan je dan dus nooit meer op result=12 gaan zoeken. Wat Blanche al zegt, deze voorwaarde in de WHERE moet gewoon weg.
Wanneer jij per result e.e.a. wilt opvragen, maak dan een groep aan door result in de GROUP BY te zetten. Let op: Het kan zijn dat je meerdere queries nodig hebt, dit i.v.m. de GROUP BY, hiermee kun je alleen eigenschappen van de hele groep opvragen en niet van 1 enkel record binnen deze groep.