Wat dacht je vanquote:Op maandag 25 juli 2011 14:28 schreef remi1986 het volgende:
De resultaten komen uit koppeltabellen en worden met GROUP BY bij elkaar gevoegd (hiermee krijg ik dus totalen voor in dit geval de medewerker)
Onderstaand de query met Nederlandse namen (kolommen heten anders, maar dit gaat sneller),
[ code verwijderd ]
Om het percentage te berekenen moet ik eerst getal 1 en 2 optellen. Getal 3 / (getal 1+2) * 100 = percentage wat ik nodig heb. Hoe wil dit allemaal in MySQL
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT medewerker_naam SUM(getal1) AS getal1 SUM(getal2) AS getal2 SUM(getal3) AS getal3 AVG (getal1, getal2, getal3) AS gemiddeld FROM medewerkers INNER JOIN tabel 1 INNER JOIN tabel 2 INNER JOIN tabel 3 WHERE datum BETWEEN .... AND .. GROUP BY gemiddeld ASC, medewerker ASC |
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT medewerker_naam SUM(getal1) AS getal1 SUM(getal2) AS getal2 SUM(getal3) AS getal3 getal3 / (getal1+2) * 100 AS percentage FROM medewerkers INNER JOIN tabel 1 INNER JOIN tabel 2 INNER JOIN tabel 3 WHERE datum BETWEEN .... AND .. GROUP BY medewerker |
1 2 | SELECT Naam, SUM(Deel) / SUM(Totaal) * 100 As Percentage FROM `test` GROUP BY Naam ORDER BY Percentage DESC |
quote:
ok dit snap ik. Maar ik moet de volgorde bepalen van de medewerkers hoe deze getoond worden (hoogste percentage in laatste jaar bovenaan). Die ORDER BY gaat dan alleen op als jaar 2011 is (in het eerste voorbeeld dat ik gaf)quote:
ORDER BY Jaartal DESC, Percentage DESCquote:Op maandag 25 juli 2011 14:35 schreef remi1986 het volgende:
[..]
[..]
ok dit snap ik. Maar ik moet de volgorde bepalen van de medewerkers hoe deze getoond worden (hoogste percentage in laatste jaar bovenaan). Die ORDER BY gaat dan alleen op als jaar 2011 is (in het eerste voorbeeld dat ik gaf)
haha je was me voor,quote:Op maandag 25 juli 2011 14:37 schreef Pakspul het volgende:
[..]
ORDER BY Jaartal DESC, Percentage DESC
Als je dingen specifiek tussen 2 jaartallen wilt hebben voeg je er gewoon op het einde aan toe: WHERE YEAR(datum) BETWEEN 2000 AND 2011.quote:Op maandag 25 juli 2011 14:46 schreef remi1986 het volgende:
hmm het zal wel aan de maandag liggen, dus wellicht nog een domme opmerking
Maar mijn uiteindelijke doel is een tabel met een overzicht van alle jaren naast elkaar (onderstaand 2011 en 2010, maar dit kunnen er 10 zijn (dus tot 2001 terug).
2011 2010
Jan (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Klaas (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Piet (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Volgens mij gaat dat niet goedkomen, aangezien je dit niet kan doen zonder eerst een array voor een bepaald jaar te maken. Of zit ik nu weer helemaal verkeerd te denken?
EDIT: Zou een tabel moeten voorstellen maar de jaren komen elk dus boven (getal 1 +2 etc...)
Ja dat klopt, maar dan krijg ik de resultaten verticaal terug en niet horizontaal zoals dus zou moeten.quote:Op maandag 25 juli 2011 14:50 schreef A-mineur het volgende:
[..]
Als je dingen specifiek tussen 2 jaartallen wilt hebben voeg je er gewoon op het einde aan toe: WHERE YEAR(datum) BETWEEN 2000 AND 2011.
Als je ze horizontaal wil maken zul je dus de rijen per jaar jaar voor jaar ophalen.quote:Op maandag 25 juli 2011 14:51 schreef remi1986 het volgende:
[..]
Ja dat klopt, maar dan krijg ik de resultaten verticaal terug en niet horizontaal zoals dus zou moeten.
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.quote:Op maandag 25 juli 2011 14:57 schreef A-mineur het volgende:
[..]
Als je ze horizontaal wil maken zul je dus de rijen per jaar jaar voor jaar ophalen.
iets van;
<?php
endyear = 2011;
for($year1 = 2000; $year1 < $endyear; $year++){
// je query. en verwerking.
}
?>
Als je nu nog de volgorde moet bepalen dan heb je dus je query nog niet goed in elkaar zitten.quote:Op maandag 25 juli 2011 15:04 schreef remi1986 het volgende:
[..]
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.
De volgorde wordt in de query bepaald. Je krijgt dus voor elk jaartal een query waar je de waardes ophaalt voor dat jaartal.quote:Op maandag 25 juli 2011 15:13 schreef Pakspul het volgende:
[..]
Als je nu nog de volgorde moet bepalen dan heb je dus je query nog niet goed in elkaar zitten.
dat kan ook wel in één keer het opbouwen van je array moet daarna een eitje zijn, maar het is niet de bedoeling dat hij later nog een keer naar de volgorde moet kijken. Dan mist er namelijk nog iets in zijn query.quote:Op maandag 25 juli 2011 15:38 schreef A-mineur het volgende:
[..]
De volgorde wordt in de query bepaald. Je krijgt dus voor elk jaartal een query waar je de waardes ophaalt voor dat jaartal.
Dan order je alle volgende queries toch gewoon ook op de percentages van 2011?quote:Op maandag 25 juli 2011 15:04 schreef remi1986 het volgende:
[..]
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.
Deze snap ik niet helemaal?quote:Op maandag 25 juli 2011 16:13 schreef Tijn het volgende:
[..]
Dan order je alle volgende queries toch gewoon ook op de percentages van 2011?
Volgens mij is het probleem dat de andere jaren gesorteerd moeten worden op de percentages van het laatste jaar.quote:Op maandag 25 juli 2011 19:54 schreef A-mineur het volgende:
Als je zorgt dat de query voor 1 jaar goed is, is de rest piece of cake en loop je die gewoon, je hoeft het niet eens in een array te mikken, want dan moet je daarna weer gaan loopen om het er uit te poepen. Dubbele moeite dus.
http://nl.php.net/soapserverquote:Op dinsdag 26 juli 2011 07:40 schreef Keiichi het volgende:
Is SOAP door php eigenlijk wel officieel ondersteund?
Het lijkt er op dat elke willekeurige SOAP 'server' gemaakt in .NET , java o.i.d. per definitie niet door bv wsdl2php komt en als dit wel lukt dat belangrijke dingen gewoon ontbreken. (Heb nu een xsd met enumeratie waar ie geen raad mee weet om een concreet voorbeeld te pakken)
Eens even naar nuSoap kijken. de soapclient van php zelf laat voor kopellingen met SOAP servers van ERP paketten enzo wat te wensen over.quote:Op dinsdag 26 juli 2011 10:57 schreef A-mineur het volgende:
[..]
http://nl.php.net/soapserver
Gebruik het regelmatig, er zijn natuurlijk wat bugs maar als je die eenmaal kent werkt het prima. Er is trouwens ook nog zoiets als nuSOAP voor PHP wat vergelijkbaar doet, alleen dan in eigen implementatie.
Ik snap niet wat je wilt bereiken, maar als de kolom naam anders moet zijn kun je gewoon een alias gebruiken. Misschien handiger om je vraag wat te specificeren met een stukje code.quote:Op dinsdag 26 juli 2011 14:54 schreef Dokay het volgende:
Fokkertjes, is er een SQL held in de zaal?
Ik wil graag een woord in een kolom veranderen naar een ander woord. Voorbeeld van een kolomwaarde:
Kostenplaats <BR> Kostensoort <BR> Subnummer <BR> Kostendrager <BR> Project
Ik zou graag "Subnummer" willen veranderen naar "Dimensie 1" voor de hele tabel. Geen probleem want dat gebruik je de REPLACE functie zou je zeggen. Maar het komt weleens voor dat de term "Subnummers" (meervoud dus) wordt gehanteerd. Aangezien je bij de REPLACE functie alleen maar een vaste zoekwaarde zonder %wildcards% kan gebruiken zit ik een beetje met de handen in het haar omdat het hier om veel verschillende tabellen gaat. Dan zou ik voor elke tabel een aparte query in elkaar moeten peuteren... Iemand een idee?
PHP script schrijven, welke eerst alle tabellen doorloopt (tabel namen in een array gooien en foreach er door heen gaan) daarna ook met de woorden die je wil vervangen (tevens weer in een array en dan foreach er door heen)quote:Op dinsdag 26 juli 2011 14:54 schreef Dokay het volgende:
Fokkertjes, is er een SQL held in de zaal?
Ik wil graag een woord in een kolom veranderen naar een ander woord. Voorbeeld van een kolomwaarde:
Kostenplaats <BR> Kostensoort <BR> Subnummer <BR> Kostendrager <BR> Project
Ik zou graag "Subnummer" willen veranderen naar "Dimensie 1" voor de hele tabel. Geen probleem want dat gebruik je de REPLACE functie zou je zeggen. Maar het komt weleens voor dat de term "Subnummers" (meervoud dus) wordt gehanteerd. Aangezien je bij de REPLACE functie alleen maar een vaste zoekwaarde zonder %wildcards% kan gebruiken zit ik een beetje met de handen in het haar omdat het hier om veel verschillende tabellen gaat. Dan zou ik voor elke tabel een aparte query in elkaar moeten peuteren... Iemand een idee?
http://www.java2s.com/Code/SQL/Select-Clause/UsingAliases.htmquote:Op dinsdag 26 juli 2011 16:28 schreef Pakspul het volgende:
[..]
PHP script schrijven, welke eerst alle tabellen doorloopt (tabel namen in een array gooien en foreach er door heen gaan) daarna ook met de woorden die je wil vervangen (tevens weer in een array en dan foreach er door heen)
Dan heb je twee foreach loops in elkaar en op diepste niveau ga je de query schrijven. Dan voer je hem uit en tada klaar
In PHP? str_pad()quote:Op woensdag 27 juli 2011 12:50 schreef Cue_ het volgende:
Wat is eigenlijk het tegenovergestelde van trim?
Ik heb een variable bv : 2574 of 4 of 24.. in ieder geval een getal.
en nu wil ik dat deze aan de voorkant wordt verlengt tot 6 tekens (wordt weggeschreven als char)
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |