Query aanpassen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

Senior .NET Ontwikkelaar

In het kort Als Senior .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag met complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek (denk aan ECT) en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Java developer (remote)

Functie Wat ga je doen als Java Developer? Jij als Java ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 ontwikkelaars binnen onze organisatie waarbij jij de brug slaat tussen het bouwen van verschillende functionaliteiten binnen onze applicaties en deze vervolgens te integreren in onze centrale hub. Je start je dag om 9 uur met een stand up en dan pak je jouw taken op voor de dag. Hieronder een aantal taken die jij zal uitvoeren: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

Software developer

Werkzaamheden voor jou als software developer Voor een goede relatie in de regio Zwolle (meerdere locaties) zoeken wij een software developer die betrokken is bij de ontwikkelcyclus en verantwoordelijk is voor het testen en keuren van nieuwe en geoptimaliseerde software. In deze functie ben je in de implementatiefase de persoon die risico's beoordeelt en intern oplossingen aanbrengt om risico's te verkleinen. Binnen het ontwikkelteam van de software ben je een belangrijke schakel waar je intensief meewerkt met scrum. Het voorkomen van bugs in de programma's en het bevorderen van gebruiksvriendelijkheid voor eindklanten zijn voor jou een uitdaging en geeft voldoening

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Front-end developer (Medior/Senior)

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

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

29/04/2024 15:12:30
 
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.