GROUP BY op alle queries

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maikel  B

Maikel B

10/08/2011 10:47:34
Quote Anchor link
Ik heb een query met daarin 2 losse queries dmv UNION.
Als resultaat krijg ik het volgende:

naam | aantal
Pietje | 15
Klaasje | 10
Keesje | 8
Henkie | 6
Klaasje | 2
Pietje | 5

De 1e 4 resultaten zijn van de 1e query en de overige van de 2e query.
Nu wil ik dat ie alle dubbele namen bij elkaar optelt.
Dus Pietje wordt 20 en Klaasje wordt 12.

Dit is de query

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT      
      CONCAT_WS(' ', forename, insertion, relation.name) as naam,
      COUNT(obj2_veritems.id_relation) as aantal
FROM
      obj2_veritems
      INNER JOIN relation ON (obj2_veritems.id_relation = relation.id)
GROUP BY
      obj2_veritems.id_relation
UNION
SELECT
      CONCAT_WS(' ', forename, insertion, relation.name) as naam,
      COUNT(obj2_veritems_link.id_relation) as aantal
FROM
      obj2_veritems_link
      INNER JOIN relation ON (obj2_veritems_link.id_relation = relation.id)
GROUP BY
      obj2_veritems_link.id_relation
ORDER BY
      aantal DESC



Heb ook al geprobeerd om met subqueries te werken maar daar krijg ik allerlei foutmeldingen mee.

Weet iemand hoe ik dit probleem kan oplossen? Loop hier nu al enkele dagen mee en heb van alles geprobeerd maar zie door de bomen het bos niet meer.

Alvast bedankt
 
PHP hulp

PHP hulp

18/04/2024 04:29:43
 
Kees Schepers

kees Schepers

10/08/2011 10:54:17
Quote Anchor link
Ik weet niet zeker of het is wat je zoekt maar je zou WITH ROLLUP kunnen proberen toe te voegen na je group by:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
GROUP BY
      obj2_veritems_link.id_relation WITH ROLLUP


Die doet een super aggegrate
 
Eric Wagener

Eric Wagener

10/08/2011 11:00:20
Quote Anchor link
Volgens mij is het sneller om je structuur om te gooien. Als je gewoon alle relaties in obj2_veritems_link zet i.p.v. obj2_veritems, dan los je veel problemen op. Dit is al de tweede keer dat je tegen zo'n probleem aanloopt en het zal nog vaker gaan gebeuren.
Dus je zet alleen boekingsinformatie in obj2_veritems en de personen in obj2_veritems_link. Het is even wat werk, maar ik denk dat het de moeite waard is.
 
Maikel  B

Maikel B

10/08/2011 11:12:24
Quote Anchor link
@Eric
dat is helaas niet mogelijk. Er werken meerdere reserveringssystemen op deze structuur.

In het begin bestond alleen obj2_veritems omdat je toen alleen voor 1 persoon kon reserveren.
Daarna is de tabel obj2_veritems_link erbij gekomen voor de reserveringen van 2 of meerdere personen.

Overal gaat het goed met queries maken enzo.
Alleen nu ben ik bezig met het maken van statistieken.
Ik ben nu bij een toplijst van het aantal reserveringen per persoon.
Dus ik wil uit allebei de tabellen alle relaties ophalen en samenvoegen en dan optellen.

Ik kan echt niks aan de structuur wijzigen omdat dit binnen ons bedrijf nu eenmaal zo is opgezet.
 
Eric Wagener

Eric Wagener

10/08/2011 11:50:49
Quote Anchor link
Ik denk dat het dan zoiets als mijn eindconclusie uit je vorige topic gaat worden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.