Query aanpassen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

.NET developer

Functie Jouw team van vier collega .NET developers is verantwoordelijk voor het bouwen van de ETL processen van jouw nieuwe werkgever. Op dit moment wordt de front-end gedaan door een extern team van professionals. Echter wilt jouw nieuwe werkgever graag intern deze kennis uitbreiden en heeft dan ook de ambitie om dit voor het eind van het jaar intern te gaan aanpakken. Dit betekend dat jij als .NET ontwikkelaar de ideale kans krijgt om jezelf samen met jouw collega’s te ontwikkelen als full stack developer. Als .NET ontwikkelaar werk jij bij deze gave werkgever met C# .NET, SQL, JavaScript, REST

Bekijk vacature »

Medior .NET developer

Functie Jij gaat als Medior .NET ontwikkelaar aan de slag in ons scrumteam met 6 developers die gepassioneerd en actief bezig zijn om onze spelers kwalitatieve en mooie spelervaringen aan te bieden. Als medior .NET developer ga jij werken aan een technisch hoogwaardig platform welke bezoekerspieken verwerkt van tienduizenden tot honderdduizenden gebruikers per minuut! Ons scrumteam werkt in drie wekelijkse sprints en wij beginnen iedere ochtend met een stand-up. Jij werkt bij ons met C# .NET, .NET Core, React.JS, Xamarin, Azure, Docker en Kubernetes. Wij hechten enorm veel waarde aan het leveren van hoogwaardige en kwalitatieve code. Zodra jij de

Bekijk vacature »

Backend Developer Integraties API HBO REST

Samengevat: Deze werkgever is een IT-consultancy. Wil jij werken als Backend Developer Integraties? Heb jij kennis van gangbare berichtformaten? Vaste baan: Backend Developer Integraties API HBO €3.100 - €4.400 Zij bieden innovatieve oplossingen die bedrijven efficiënter en wendbaarder maken, waardoor onze klanten zich net zo snel kunnen ontwikkelen als de business van hen vraagt. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot en ingewikkeld. Hou jij van diepgang

Bekijk vacature »

Front-end Developer Magento 2/Wordpress

Voor het aantrekkelijk houden en steeds vernieuwen van de huidige websites en webshops en het meedenken in de marketing zijn wij per direct op zoek naar een ervaren Front-end developer met gedegen kennis van Magento 2 (webshops) en Wordpress (websites). Wat bieden wij jou Mooi salaris! Meteen op contract bij de opdrachtgever! Gezellig, Kempisch bedrijf! 35 uur per week! Auto van de zaak! Wie ben jij Van een front-end developer verwachten wij: Een afgeronde Bachelor ICT opleiding met profiel ICT & Media Design. Dat je in het bezit bent van een Magento 2 professional front-end developer certificaat; Je hebt ruime

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

IT Infrastructuur Developer

IT Infrastructuur Developer Ben jij (bijna) klaar met je HBO studie in de richting van IT? Opzoek naar een spannende eerste baan, waar je ontzettend veel kan leren? Dan hebben wij de ultieme job voor jou! Voor een goede klant van ons in de financiële dienstverlening zijn wij opzoek naar een Junior Infrastructure Developer. Deze baan is een mooie kans om een sterke start te geven aan jouw carrière binnen de IT! De job Je werkt nauw samen met het Devops team, en zal je voornamelijk bezighouden met het automatiseren van infrastructure componenten. De componenten worden opgevraagd door het DevOps

Bekijk vacature »

Software developer - senior

Functie omschrijving Voor een echt softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking voor de afdeling Software Development! Ben jij op zoek naar een werkgever waar meerdere software developers werken aan interessante projecten? Ben jij op zoek naar een werkgever waar je onderdeel wordt van een team dat echt passie heeft voor het ontwikkelen van software? Dan ben je hier aan het juiste adres! Als softwareontwikkelaar kom je terecht bij een onafhankelijk, door kwaliteit gedreven, doortastend en daarbij op een Agile wijze werkend bedrijf. Ben jij een expert in het vertalen van Componenten van Functionaliteit naar Business lagen?

Bekijk vacature »

C# .NET Developer IoT SQL Server

Samengevat: Wij ontwikkelen innovatieve oplossingen om apparaten en bezittingen op een eenvoudige en flexibele manier te beveiligen. Ben jij een C# .NET developer? Heb jij ervaring met C# en SQL server? Vaste baan: C# .NET Developer IoT HBO €3.200 - €4.500 Deze werkgever is gespecialiseerd in hoogwaardige GSM/GPRS alarm- en telemetrietechnologie. Met een eigen productlijn en klantspecifieke ontwikkelingen biedt deze werkgever oplossingen om op afstand te meten, melden, loggen en aansturen, ook op plaatsen zonder stroomvoorziening. Onze producten worden gekarakteriseerd door flexibiliteit in de configuratie, betrouwbaarheid en een extreem laag stroomverbruik. Zij werken voor MKB klanten. Deze werkgever heeft veel

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

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

24/11/2024 06:16:52
 
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.