(SQL) Union gebruiken met twee aliassen

Status
Niet open voor verdere reacties.

pilootnour5

Terugkerende gebruiker
Lid geworden
22 nov 2008
Berichten
1.895
Beste lezers,

Ik wilde vandaag twee losse query's samenvoegen tot een query, om zo de serverbelasting te verlagen. Deze query's heb ik samengevoegd tot één:

Query 1
Code:
SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS [B]winter_verbruik[/B]
FROM tankbeurten WHERE datum NOT BETWEEN '$jaar-03-21' AND '$jaar-9-20' 
AND datum LIKE '%$jaar%'

Query 2
Code:
SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS [B]zomer_verbruik[/B] 
FROM tankbeurten WHERE datum NOT BETWEEN '$jaar-03-21' AND '$jaar-9-20' 
AND datum LIKE '%$jaar%'

Samen vormen deze middels UNION:

Code:
SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS [B]winter_verbruik[/B] 
FROM tankbeurten 
WHERE datum NOT BETWEEN '$jaar-03-21' AND '2016-9-20' 
AND datum LIKE '%$jaar%' 

UNION

SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS [B]zomer_verbruik[/B]
FROM tankbeurten WHERE datum BETWEEN '2016-03-21' AND '$jaar-9-20' 
AND datum LIKE '%$jaar%'

De resultaten komen eruit, maar worden allebei onder de alias 'winter_verbruik' gezet. Is dit op te lossen, dat de tweede query onder 'zomer_verbruik' komt te staan?
Alvast bedankt.
 
Beste pilootnour5 ,

Union neemt standaard de kolomnaam van het eerste select statement.
Dus wat er bij jou gebeurt is heel normaal.

met onderstaande oplossing worden jou kolommen niet gesplitst.
ik heb winter_verbruik en zomer_verbruik samengevoegd tot verbruik (zoals dit gebeurt bij UNION).
deze query voegt een 2de kolom toe: Periode genaamd.
de kolom periode wordt nu gevuld met zomer of winter.

Hopelijk kun je hiermee verder :D

Code:
SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS verbruik, 'Winter' as periode
FROM tankbeurten 
WHERE datum NOT BETWEEN '$jaar-03-21' AND '2016-9-20' 
AND datum LIKE '%$jaar%' 

UNION

SELECT SUM(`dagtellerstand`) / SUM(`liters`) AS verbruik, 'Zomer' as periode
FROM tankbeurten WHERE datum BETWEEN '2016-03-21' AND '$jaar-9-20' 
AND datum LIKE '%$jaar%'
 
Dank je wel voor je snelle reactie. Het is inderdaad gelukt. Nu nog even kijken hoe ik dit ga oproepen met PHP.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan