Query aanpassen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

Bekijk vacature »

3D BIM Add-on Developer

As a 3D BIM add- on developer at KUBUS, you will develop add-ons (called BCF- Managers) to the leading building information modeling (BIM) programs Revit, Navisworks, Archicad, AutoCAD and Tekla Structures. BCF Managers enable data transfer between BIM software and BIMcollab. You will work on both the front- and the back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual

Bekijk vacature »

.NET Developer Medior Senior

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Herbruikbare componenten maken; Testen; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als .NET Developer kom jij terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als .NET Developer werk jij aan het ontwikkelen van verbeterde software voor

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een development team met één Senior .NET developer en één junior .NET developer. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit moment veel gebruik van .NET met ASP.NET. Komend kwartaal gaan wij wel gedeeltelijk overstappen naar .NET Core. Verder werken wij ook met SOAP, REST, JSON, HTML5, CSS3

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

Medior C# Developer

You'll build modern applications for Coolblue's back office. We have a lot of friends, and they crave well-structured data and user-friendly, task-focused applications. How do I become a Medior C# Developer at Coolblue? You regularly participate in brainstorm sessions about user experience, data, and task flow with the UX Designer, Product Owner, and Data Scientists in your team. Besides that you will create disconnected, highly congruent, and testable code that can easily be maintained and is future-proof. Want to become C# Developer at Coolblue? Read below if the job suits you. You enjoy doing this Working with various types of

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Als Front-end developer bijdragen aan het onderwij

Functie Als front-end developer om je terecht in een team van goede en ervaren developers, en ga je werken aan de software die door miljoenen mensen gebruikt wordt. Je bent in staat om designs effectief te vertalen naar werkende feautures en hebt oog voor een goede UX van het product. Je staat voor clean code en goede documentatie. Je ziet toegevoegde waarde in het beoordelen van het werk van collega’s om zo samen te streven naar hoge kwaliteit software en code. Je dagelijkse werk bestaat uit het werken aan componenten in de Storybook. Het verbeteren en refactoren van de huidige

Bekijk vacature »

Full Stack Developer

Ben jij een kei van een full-stack developer? Heb je ambitie om te groeien en jezelf te ontwikkelen binnen een ambitieus bedrijf? Gaat jouw hart sneller kloppen van transpilers of frameworks zoals Angular, Vue of React? Dan ben jij de persoon die wij zoeken! Voor onze opdrachtgever zijn wij op zoek naar een full-stack developer om onderdeel te zijn van een team dat bestaat uit gedreven developers. Ieders met hun eigen specialiteiten en kennis van de projecten en behoeften vanuit de product owners. We zoeken iemand die met zijn/haar huidige competenties en domeinen dit team wil begeleiden, stimuleren en tevens

Bekijk vacature »

Senior Airport Developer ( System engineer)

De functie Nice to know (you) De nieuwe A-pier wordt de duurzaamste van Schiphol. Als deze af is ligt er 4000 vierkante meter zonnepanelen op het dak. En de toiletten? Die spoelen door met regenwater. we gaan ervoor: het creëren van de meest duurzame en hoogwaardige luchthavens ter wereld. een toekomstbestendig en duurzaam Schiphol. Daar werken we elke dag hard aan in team Development & Sustainability. Jij bent regisseur, expert én aanjager van de ontwikkeling van Schiphol. Connecting your world Hoe maak je de ambities en doelstellingen van Schiphol concreet in een project? De waarde voor Schiphol naar eisen die

Bekijk vacature »

Junior Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Samenwerken in een team van 10 collega's; Opleveren van mooie eindproducten, middels de Agile methodiek; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als startende IT-professional kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven.

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Lead Webdeveloper

Als Lead webdeveloper bij KUBUS ben je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de webapplicatie en services van BIMcollab. In je rol als lead developer zoek je als vanzelf op een creatieve manier naar het optimum tussen benodigde implementatie-tijd, de performance van de applicatie en een snelle go-to-market van features, aansluitend bij onze geautomatiseerde test- en release train. Hierbij bewaak je in samenwerking met de andere senior ontwikkelaars in je team de architectuur van de applicatie en adviseer je de product owner over noodzakelijke refactoring om de onderhoudbaarheid van het platform te verbeteren. Ons

Bekijk vacature »

C# .NET developer voor innovatieve applicaties gez

Bedrijfsomschrijving Deze werkgever houdt zich al ruim 20 jaar bezig met het ontwikkelen van innovatieve software en dat willen ze graag nog lang doorzetten. En dat merk je ook als je als .NET developer hier aan de slag gaat. De applicaties worden continu doorontwikkeld met altijd als uitgangspunt dat zowel de kwaliteit als het gebruikersgemak van hoog niveau is. Het bedrijf telt inmiddels ruim 25 medewerkers waarvan meer dan de helft op de development afdeling werken. Meer weten over deze werkgever? Mail naar [email protected] of bel 0657578548 Functieomschrijving Je komt te werken in een Scrum team met andere .NET developers

Bekijk vacature »
D B

D B

15/05/2014 21:40:32
Quote Anchor link
Hallo,

Ik heb een werkende query namelijk:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
SELECT
            lid.voornaam,
            lid.achternaam,
            lid.teams,
            lid.id,
            COUNT(g.leden_id) aantal_goals
        FROM
                (SELECT
                l.id,
                l.voornaam,
                l.achternaam,
                t.team AS teams
            FROM
                Leden AS l
            JOIN
                Teamindeling AS ti
            ON
                (l.id = ti.leden_id)
            JOIN
                Teams AS t
            ON
                (t.id = ti.team_id)
            WHERE
                ti.taak = 'Speler'
            AND
                ti.seizoen = '2013/2014'
            AND
                t.leeftijd = 'Junioren'
            GROUP BY
                l.id,
                l.voornaam,
                l.achternaam
                ) AS lid
        LEFT JOIN
            Goals AS g
        ON
                (lid.id = g.leden_id) AND g.seizoen = '". $seizoen. "' AND g.wie LIKE 'ZSC%'
        LEFT JOIN
            Wedstrijden AS w
        ON
                (g.wedstrijd_id = w.id)
        WHERE
            w.soort = 'Competitie'
        GROUP BY
            lid.voornaam,
            lid.achternaam,
            lid.teams
        ORDER BY
            lid.teams,
            aantal_goals DESC


Nu telt deze query per team uit hoeveel goals een persoon gemaakt heeft (ook als deze goals heeft gemaakt in een ander team telt hij deze mee)

Wat ik nu graag zou willen is dat hij per persoon uittelt hoe vaak hij per team gescoord heeft.

Dus wat ik nu krijg:

Jantje - 3 goals A1 (1x in A1 , 2x in B1)
Pietje - 3 goals A1 (3x in A1)
----------
Klaasje - 1 goal B1

Wat ik dus zou willen:

Pietje - 3 goals A1
Jantje - 1 goal A1
----------
Jantje - 2 goals B1
Klaasje - 1 goal B1

Hoe kan ik deze query aanpassen dat hij dus de goals per persoon per team telt.
Ik heb zelf al vanalles geprobeerd maar zie het helaas niet meer.

Hoop dat het een beetje duidelijk is.

Alvast bedankt!
 
PHP hulp

PHP hulp

27/05/2026 01:59:39
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

16/05/2014 09:10:26
Quote Anchor link
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
20
21
22
23
24
25
26
27
28
29
SELECT
    t.team,
    l.voornaam,
    l.achternaam,
    COUNT(g.leden_d) AS aantal_goals
FROM
    teams t
JOIN
    team_indeling ti
    ON t.id = team_id
JOIN
    leden l
    ON ti.leden_id = l.id
LEFT JOIN
    goals g
    ON l.id = g.leden_id AND g.seizoen = '2013/2014' AND g.wie LIKE 'ZSC%'
LEFT JOIN
    wedstrijden w
    ON g.wedstrijd_id = w.id AND w.soort = 'Competitie'
WHERE
    ti.taak = 'Speler'
    AND ti.seizoen = '2013/2014'
    AND t.leeftijd = 'Junioren'
GROUP BY
    t.team,
    l.voornaam,
    l.achternaam
ORDER BY
    t.team, aantal_goals DESC
 
D B

D B

16/05/2014 10:07:03
Quote Anchor link
Hallo Ger,

Bedankt alvast voor het meedenken. Helaas werkt het nog niet helemaal.

Voorbeeld: http://www.zscwesterhoven.nl/test.php?o=1

Ik zal proberen mijn databasestructuur nog wat verder uit te leggen, dan komen we er hopelijk wel uit.

Leden -
id 1
voornaam Jan
achternaam Test

Wedstrijden
id 1
team_1 ZSC C1
team_2 TEST C1
soort Competitie
competitie ZSC C1
seizoen 2013/2014

Goals
id 1
wedstrijd_id 1
leden_id 1
wie ZSC C1
minuut 10
seizoen 2013/2014

Teams
id 1
team ZSC C1
volgorde 2
seizoen 2013/2014
leeftijd Junioren

Teamindeling
id 1
team_id 1
leden_id 1
taak Speler
seizoen 2013/2014

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    $query = "
        SELECT
            t.team,
            l.voornaam,
            l.achternaam,
            COUNT(g.leden_id) AS aantal_goals
        FROM
            Teams t
        JOIN
            Teamindeling ti
        ON
            t.id = team_id
        JOIN
            Leden l
        ON
            ti.leden_id = l.id
        LEFT JOIN
            Goals g
        ON
            l.id = g.leden_id AND g.seizoen = '". $seizoen. "' AND g.wie LIKE 'ZSC%'
        LEFT JOIN
            Wedstrijden w
        ON
            g.wedstrijd_id = w.id AND w.soort = 'Competitie'
        WHERE
            ti.taak = 'Speler'
        AND
            ti.seizoen = '". $seizoen. "'
        AND
            t.leeftijd = 'Junioren'
        GROUP BY
            t.team,
            l.voornaam,
            l.achternaam
        ORDER BY
            t.team,
            aantal_goals DESC
    ";



Toevoeging op 16/05/2014 17:14:23:

De bovenste persoon van de B1 bijvoorbeeld had in de B1 9 doelpunten moeten hebben, en hoort ook in het rijtje A1 thuis, met 2 doelpunten.

Hier nog een plaatje als ik in kolom Goals kijk voor deze persoon:

http://www.zscwesterhoven.nl/uitlegplaatje.jpg
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

16/05/2014 18:29:47
Quote Anchor link
Dat het aantal doelpunten niet klopt, kan ik wel thuisbrengen, maar dat maar iemand maar bij één team wordt weergegeven niet.
In ieder geval moet je bij de join van de goals LIKE 'ZSC%' veranderen in g.wie = t.team
 
D B

D B

17/05/2014 00:10:09
Quote Anchor link
Hallo Ger,

Allereerst weer bedankt voor je hulp. Nu ik dit veranderd heb kloppen het aantal goals wel. Helaas zie ik de namen nog steeds maar bij 1 team, wat kan ik je nog aan extra info@ geven zodat we ook daar uit kunnen komen?

Als laatste nog: Er bestaat bij die Goals tabel ook een leden_id 0, dit is een eigen doelpunt, omdat er geen Lid 0 bestaat komen deze volgens mij dus ook niet in de lijst. Is het mogelijk om daar toch Eigen goals - Aantal te krijgen?

Groetjes!

Toevoeging op 17/05/2014 09:06:49:

Kan het misschien zo zijn dat hij de speler niet bij de andere teams laat zien omdat de speler niet in de teamindeling van dat elftal staat?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/05/2014 09:57:00
Quote Anchor link
Als een speler niet bij de teamindeling van een team staat wordt die niet meegenomen in deze query.

Als het goed is in deze wel:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SELECT
    t.team,
    l.voornaam,
    l.achternaam,
    COUNT(g.leden_id) AS aantal_goals
FROM
    teams t
JOIN
    (SELECT
        team_id,
        leden_id,
    FROM
        team_indeling
    WHERE
        seizoen = '2013/2014'
        AND
        taak = 'Speler'
    UNION
        SELECT DISTINCT
            tt.team_id
            go.leden_id
        FROM
            goals go
        JOIN
            teams tt
            ON go.wie = tt.team
        WHERE
            tt.leeftijd = 'Junioren' AND go.seizoen = '2013/2014'    
    ) ti
    ON t.id = ti.team_id
JOIN
    leden l
    ON ti.leden_id = l.id AND
LEFT JOIN
    goals g
    ON l.id = g.leden_id AND g.seizoen = '2013/2014' AND g.wie = t.team
LEFT JOIN
    wedstrijden w
    ON g.wedstrijd_id = w.id AND w.soort = 'Competitie'
WHERE
    t.leeftijd = 'Junioren'
GROUP BY
    t.team,
    l.voornaam,
    l.achternaam
ORDER BY
    t.team, aantal_goals DESC
 
D B

D B

17/05/2014 10:28:11
Quote Anchor link
Ik ga maandag even kijken of dit werkt.

Nu een weekendje weg.

Bedankt iniedergeval!
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/05/2014 17:14:35
Quote Anchor link
>> Ik ga maandag even kijken of dit werkt

D B in PM:
Ik heb deze namelijk van het weekend nodig voor onze jaarlijkse afsluiting. (Wil geen druk bij je neerleggen hoor)


Foei!! :-P
Gewijzigd op 17/05/2014 17:14:54 door Ger van Steenderen
 
D B

D B

17/05/2014 19:40:02
Quote Anchor link
De oplossing in je vorige post was genoeg voor dit weekend omdat ze op de club alleen de topscoorders van junioren (1x) en pupillen (1x) nodig hadden om de wisselbeker te laten maken. Volgend weekend word er van elk team de top 3 opgenoemd en dat ligt allemaal korter bij elkaar dus dan heb ik de nog gespecificeerdere oplossing nodig.

Zodoende. Maandag ga ik dus zelf ook meteen weer aan de slag.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/05/2014 19:52:38
Quote Anchor link
Geniet van je weekend ;-)
 
D B

D B

18/05/2014 22:12:21
Quote Anchor link
Hallo,

Daar ben ik weer.

Ik heb nu de query van je gebruikt Ger, maar tt.team_id bestaat niet dus daar kan hij niets mee. Ik snap helaas zelf niet wat de query precies doet met die UNION enzo, dus weet niet zo goed wat ik nu kan wijzigen. Kan ik op een makkelijke manier mijn database opbouw laten zien zodat je er misschien meer wijs uit kunt?

Groeten,

Danny

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    SELECT
        t.team,
        l.voornaam,
        l.achternaam,
        COUNT(g.leden_id) AS aantal_goals
    FROM
        Teams t
    JOIN
        (SELECT
            team_id,
            leden_id
        FROM
            Teamindeling
        WHERE
            seizoen = '2013/2014'
            AND
            taak = 'Speler'
        UNION
            SELECT DISTINCT
                tt.team_id,
                go.leden_id
            FROM
                Goals go
            JOIN
                Teams tt
                ON go.wie = tt.team
            WHERE
                tt.leeftijd = 'Junioren' AND go.seizoen = '2013/2014'    
        ) ti
        ON t.id = ti.team_id
    JOIN
        Leden l
        ON ti.leden_id = l.id
    LEFT JOIN
        Goals g
        ON l.id = g.leden_id AND g.seizoen = '2013/2014' AND g.wie = t.team
    LEFT JOIN
        Wedstrijden w
        ON g.wedstrijd_id = w.id AND w.soort = 'Competitie'
    WHERE
        t.leeftijd = 'Junioren'
    GROUP BY
        t.team,
        l.voornaam,
        l.achternaam
    ORDER BY
        t.team,
        aantal_goals DESC
 
D B

D B

20/05/2014 10:05:59
Quote Anchor link
Daar ben ik weer,

Na flink puzzelen heb ik het volgende:

http://www.zscwesterhoven.nl/test.php?o=2

http://www.zscwesterhoven.nl/uitlegplaatje.jpg

Zoals op het plaatje te zien krijg ik nu de teams waar ze gescoord hebben en de teams waar ze in spelen te zien. Nu zouden ze alleen nog gecount moeten worden (per t.team) en gegroepeerd worden.

Wie kan me hiermee helpen?

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
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT
    l.voornaam,
    l.achternaam,
    g.wie,
    g.leden_id,
    t.team
FROM
    Goals AS g
LEFT JOIN
    Leden AS l
ON
    g.leden_id = l.id
LEFT JOIN
    Wedstrijden AS w
ON
    g.wedstrijd_id = w.id
LEFT JOIN
    Teamindeling AS ti
ON
    g.leden_id = ti.leden_id AND ti.taak = 'Speler' AND ti.seizoen = '2013/2014'
LEFT JOIN
    Teams AS t
ON
    ti.team_id = t.id
WHERE
    g.seizoen = '2013/2014'
AND
    w.soort = 'Competitie'
AND
    g.wie LIKE 'ZSC%'
AND
    t.leeftijd = 'Junioren'
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/05/2014 19:36:44
Quote Anchor link
Heb je de query die ik gaf al uit geprobeerd?
 
D B

D B

20/05/2014 19:44:56
Quote Anchor link
Jazeker, zie 2à3 posts terug, over die union en de tt id die niet bestaat.
Gewijzigd op 20/05/2014 19:45:48 door D B
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/05/2014 20:00:20
Quote Anchor link
Altijd wel even contoleren op veldnamen, ik heb de gewoonte om een id kolom de enkelvoudige naam van de tabel mee te geven (i.e. in teams -> team_id).

UNION is de resultaten van twee query's samenvatten, dus wat ik doe in subquery is eerst de spelers selecteren bij het team waarin ze zijn ingedeeld, en daarna pak ik het de teams erbij waarvoor ze ook zijn uitgekomen vanuit de goals tabel.

Als je aan dingen twijfelt moet je gewoon zo'n subquery los uit proberen in jouw favoriete SQL tool
Gewijzigd op 20/05/2014 20:01:49 door Ger van Steenderen
 
D B

D B

20/05/2014 20:02:16
Quote Anchor link
Zo was ik dus inderdaad tot mijn laatste post gekomen.

Ik ga nu die query van jou nog eens proberen.

Toevoeging op 20/05/2014 20:29:39:

Ik gebruik nu dit:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SELECT
    t.team,
    l.voornaam,
    l.achternaam,
    COUNT(g.leden_id) AS aantal_goals
FROM
    Teams t
JOIN
    (SELECT
        team_id,
        leden_id
    FROM
        Teamindeling
    WHERE
        seizoen = '2013/2014'
        AND
        taak = 'Speler'
    UNION
        SELECT DISTINCT
            tt.id,
            go.leden_id
        FROM
            Goals go
        JOIN
            Teams tt
            ON go.wie = tt.team
        WHERE
            tt.leeftijd = 'Junioren' AND go.seizoen = '2013/2014'    
    ) ti
    ON t.id = ti.team_id
JOIN
    Leden l
    ON ti.leden_id = l.id
LEFT JOIN
    Goals g
    ON l.id = g.leden_id AND g.seizoen = '2013/2014' AND g.wie = t.team
LEFT JOIN
    Wedstrijden w
    ON g.wedstrijd_id = w.id AND w.soort = 'Competitie'
WHERE
    t.leeftijd = 'Junioren'
GROUP BY
    t.team,
    l.voornaam,
    l.achternaam
ORDER BY
    t.team, aantal_goals DESC


Maar dit geeft niet het gewenste resultaat.

Zie http://www.zscwesterhoven.nl/test.php?o=1
Linkse kolom = Goede aantal goals, zonder spelers uit andere teams
Rechtse kolom = Spelers uit andere teams erbij, aantallen niet goed

Ergens telt hij nu te veel goals. En ook zie ik graag achter de naam het Team uit de teamindeling, en niet het team waar de goals in zijn gemaakt. Dit heeft denk ik te maken met select t.team bovenaan in de query.

(Het lijkt erop dat alles x3 en/of x2 is gedaan)
Gewijzigd op 20/05/2014 20:41:43 door D B
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/05/2014 21:20:11
Quote Anchor link
>> Als je aan dingen twijfelt moet je gewoon zo'n subquery los uit proberen in jouw favoriete SQL tool

Als dingen niet werken zoals je verwacht, moet je de query gaan debuggen, en dat betekent stukje voor stukje opbouwen.

Ik kan niet in jouw database gegevens kijken, dus kan (en wil) het ook niet uittesten.

Klinkt misschien een beetje bot, maar zo heb ik het ook geleerd.
 
D B

D B

20/05/2014 22:08:40
Quote Anchor link
Uiteindelijk is het dan volgens mij toch gelukt en is het volgende de oplossing geweest:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
elseif ($_GET['o'] == "2") {
    $query1 = "
        SELECT
            team
        FROM
            Teams
        WHERE
            seizoen = '". $seizoen. "'
        AND
            leeftijd = 'Junioren'
        ";
    $res1=mysql_query($query1) or die(mysql_error());
    echo '<table class="buiten" style="border:1px solid black;">';
    echo '<tr><th colspan="4">Topscoorders Junioren - Per Team</th></tr>';
    while ($row1 = mysql_fetch_array($res1)) {
        echo '<tr><th colspan="4">'. $row1['team']. '</td></tr>';
        $query = "
            SELECT
                l.voornaam,
                l.achternaam,
                g.wie,
                COUNT(g.leden_id) AS aantal_goals,
                t.team
            FROM
                Goals AS g
            LEFT JOIN
                Leden AS l
            ON
                g.leden_id = l.id
            LEFT JOIN
                Wedstrijden AS w
            ON
                g.wedstrijd_id = w.id
            LEFT JOIN
                Teamindeling AS ti
            ON
                g.leden_id = ti.leden_id AND ti.taak = 'Speler' AND ti.seizoen = '". $seizoen. "'
            LEFT JOIN
                Teams AS t
            ON
                ti.team_id = t.id
            WHERE
                g.seizoen = '". $seizoen. "'
            AND
                w.soort = 'Competitie'
            AND
                g.wie = '". $row1['team']. "'
            AND
                t.leeftijd = 'Junioren'
                GROUP BY
                    g.leden_id,g.wie
                   ORDER BY
                    g.wie,
                aantal_goals DESC,
                l.achternaam
        ";
        $res=mysql_query($query) or die(mysql_error());
        while ($row=mysql_fetch_array($res)){
            echo '<tr>';
            echo '<td align="left" width="80">'. $row['voornaam']. '</td>';
            echo '<td align="left" width="120">'. $row['achternaam']. '</td>';
            echo '<td align="left" width="100">'. $row['team']. '</td>';
            echo '<td align="right" width="50">'. $row['aantal_goals']. '</td>';
            echo '</tr>';
        }
        $query2 = "SELECT COUNT(g.leden_id) AS aantal_goals FROM Goals AS g LEFT JOIN Wedstrijden AS w ON g.wedstrijd_id = w.id WHERE g.wie = '". $row1['team']. "' AND g.leden_id = '0' AND w.soort = 'Competitie' AND w.seizoen = '". $seizoen. "'";
        $res2=mysql_query($query2) or die(mysql_error());
        $row2=mysql_fetch_array($res2);
        echo '<tr>';
        echo '<td align="left" colspan="3">Eigen goals door Tegenstander</td>';
        echo '<td align="right" width="100">'. $row2['aantal_goals']. '</td>';
        echo '</tr>';
        echo '<tr><th colspan="4">'. $row['wie']. '</td></tr>';
    }
        echo '</td>';
        echo '</tr>';
        echo '</table>';
}


Ger, iniedergeval bedankt voor het helpen!

Misschien heb je nog wat tips/opmerkingen over dit scriptje?
Gewijzigd op 21/05/2014 00:10:09 door D B
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/05/2014 07:39:11
Quote Anchor link
>>Als ik alleen die SELECT met UNION query gebruik komt daar 3x team_id (32,6,55) naar voren met 3x leden_id 167

Dat is precies de bedoeling, de subquery is bedoeld om een virtuele teamindeling te genereren.
Je moet alleen tt.team meenemen in de SELECT meenemen, en daar de goals tabel op joinen.

Als je het team erbij wilt waar een speler oorspronkelijk is ingedeeld, moet je de teamindeling nogmaals joinen (na leden)
 
D B

D B

21/05/2014 10:06:30
Quote Anchor link
Ik heb het nu iniedergeval werkend, maar ik ga nog zeker eens naar jou query met laatstgenoemde tips kijken.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

22/05/2014 12:39:01
Quote Anchor link
Met jouw query krijg je alleen spelers te zien die gescoord hebben.

Met mijn query krijg je altijd alle spelers te zien die bij een team zijn ingedeeld.
Wil je dan toch alleen maar de spelers zien die gescoord hebben voeg je een having clause aan de group by toe.

Daarnaast is de goals tabel de meest uitgebreide tabel, dus dat scheelt een hele hoop performance.
Gewijzigd op 22/05/2014 15:34:58 door Ger van Steenderen
 



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.