MySQL query hulp

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

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 »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

Bekijk vacature »

In-house .NET software developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house development functie? Maak jij graag hét verschil m.b.t. interne automatisering? Haal jij energie uit het automatiseren van processen voor je eigen collega's? Dan hebben wij de perfecte vacature voor je! Voor een gezellig Brabants familiebedrijf, zijn wij op zoek naar een .NET software developer. Je gaat in deze zelfstandige functie werken aan de ontwikkeling van eigen applicaties & en het koppelen van deze applicaties aan de ingekocht software. Jouw werkzaamheden zien er als volgt uit: Het management team signaleert behoeftes vanuit de business. Vervolgens worden deze behoeftes uitgewerkt en geprioriteerd.

Bekijk vacature »

Senior Software developer PHP

Functie Jij als senior PHP ontwikkelaar komt te werken in 1 van onze SCRUM teams. Momenteel werken er zo’n 30 developers binnen onze organisatie Jij gaat de brug zijn 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 je taken op voor de dag. Een greep van jouw taken zijn: – Het bedenken en uitbouwen van features binnen de verschillende applicaties – Onderhouden van CI/CD pipelines – Bezighouden met Security & Privacy Eisen • Minimaal 4

Bekijk vacature »

SQL Developer

Functie omschrijving We are looking for a dutch native speaker Jij gaat in deze functie aan de slag met uitdagende projecten en het creëren van maatwerk software, vooral middels SQL. Iedere klant/project is weer anders, maar dat maakt dit bedrijf en de functie erg uniek & uitdagend. Verder heb je de volgende taken: Ontwikkelen en ontwerpen van SQL databases. T-SQL wordt hierbij gebruikt als programmeer laag; Optimalisatie van query's, voor een verbeterde efficiency; Begeleiden van junior developers, mits je dit leuk vindt; Heb je meer interesse in een rol als consultant, dan is dit ook mogelijk. Je heb hier meer

Bekijk vacature »

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Creatieve Front-end developer gezocht!

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 »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Capelle aan den IJssel zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je

Bekijk vacature »

Front-end Developer

Dit ga je doen Je komt in een DevOps-cultuur te werken waarbij je met je team werkt aan de front-end van diverse brand websites; Het ontwerpen van functionele en grafische ontwerpen die worden geïmplementeerd; Draagt zorg voor het maken van analyses; Je werkt nauw met je collega’s samen en geeft elkaar feedback en suggesties waar nodig; Het uitwerken van vraagstukken die afkomstig zijn van verschillende klanten; Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt

Bekijk vacature »
Liefhebber Laravel

Liefhebber Laravel

15/11/2016 08:54:04
Quote Anchor link
Hoi,

Kunnen jullie me even helpen om een juiste query op te bouwen: Dit is mijn tabel met evenementen:
(Weet dat de echte tabel ongeveer 3000 evenementen bevat!)

idtitlestartend
10evenement12016-11-05 08:00:002016-11-05 10:00:00
11evenement22016-11-06 09:00:002016-11-06 12:00:00
12evenement32016-11-06 14:00:002016-11-06 16:00:00
13evenement42016-11-08 10:00:002016-11-06 12:00:00
14evenement52016-11-08 10:00:002016-11-06 12:00:00


Ik zou een lijst willen verkrijgen van alle uren / gegroepeerd per dag dat er zich een evenement voordeed.
Dus: de lijst die ik hier wil verkrijgen is:

  • Datum: 2016-11-05 - Aantal uren: 2:00:00
  • Datum: 2016-11-06 - Aantal uren: 5:00:00
  • Datum: 2016-11-08 - Aantal uren: 2:00:00


Merk op dat op datum 6/11 2 evenementen waren, die opgeteld zijn
Merk op dat op datum 8/11 ook 2 evenementen waren maar dat die overlapten, en deze zijn dus samengeteld !!

Kunnen jullie me een query bezorgen die dit resultaat geeft?

Alvast bedankt!

Groetjes!
Gewijzigd op 15/11/2016 08:54:43 door Liefhebber Laravel
 
PHP hulp

PHP hulp

24/12/2024 04:24:32
 
Adoptive Solution

Adoptive Solution

15/11/2016 11:46:40
Quote Anchor link
Probeer het eens met :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
sum( end-uur - start-uur  )


en :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
group by start-datum
 
Liefhebber Laravel

Liefhebber Laravel

15/11/2016 12:09:39
Quote Anchor link
Hoi Adoptive Solution,

Dit lijkt te werken, ik krijg dan wel de tijd terug als een integer. Bijvoorbeeld 5:30 uren verschil wordt getoond als 53000
Bestaat er een functie om dit terug om te zetten naar 05:30:00 of moet ik de : er via SUBSTRING tussenplaatsen?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

15/11/2016 12:32:08
 
Adoptive Solution

Adoptive Solution

15/11/2016 12:35:06
Quote Anchor link
Ik zag de vraag al aankomen.

Met behulp van date_format() kan je het verfijnen.

Hier een voorbeeld van een bestand (zonder datum) met begin- en eindtijd die de totaal uren opsomt per heel uur :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT *, date_format(begin,'%H') AS uur, SUM(date_format(einde,'%H') - date_format( begin, '%H')) AS uren FROM afspraken GROUP BY uur
 
Liefhebber Laravel

Liefhebber Laravel

15/11/2016 13:49:50
Quote Anchor link
Naar het voorstel van Adaptive Solution:
volgende SQL geeft niet het juiste resultaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT DATE(start) AS datum, SUM( TIME(end) - TIME(start)) as tijd FROM events GROUP BY start


Resultaat:
datumtijd
2016-11-0520000
2016-11-0630000
2016-11-0620000
2016-11-0840000


  • datum 06/11 komt in 2 regels voor, en dit moet opgeteld zijn
  • datum 08/11 wordt als 40000 (4:00h) weergegeven terwijl dit maar 2:00 moet zijn (deze overlappen)




Toevoeging op 15/11/2016 14:04:27:

Hier eventueel de code om de tabel lokaal te importeren. Om te testen indien nodig.

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
DROP TABLE IF EXISTS `events`;
CREATE TABLE `events` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(20) DEFAULT NULL,
  `start` datetime DEFAULT NULL,
  `end` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

INSERT INTO `events` VALUES ('1', 'evenement1', '2016-11-05 08:00:00', '2016-11-05 10:00:00');
INSERT INTO `events` VALUES ('2', 'evenement2', '2016-11-06 09:00:00', '2016-11-06 12:00:00');
INSERT INTO `events` VALUES ('3', 'evenement3', '2016-11-06 14:00:00', '2016-11-06 16:00:00');
INSERT INTO `events` VALUES ('4', 'evenement4', '2016-11-08 10:00:00', '2016-11-08 12:00:00');
INSERT INTO `events` VALUES ('5', 'evenement5', '2016-11-08 10:00:00', '2016-11-08 12:00:00');
Gewijzigd op 15/11/2016 13:52:12 door Liefhebber Laravel
 
Adoptive Solution

Adoptive Solution

15/11/2016 14:52:33
Quote Anchor link
Met dank aan de interwebs :

http://www.google.nl/search?q=how+to+calculate+the+time+difference+in+mysql

Dit gefabriekt :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
select *, timediff(end,start) as uren from events;
select *, date_format(start,'%Y-%c-%d') as dag, sum(timediff(end,start)) as uren from events group by dag;
Gewijzigd op 15/11/2016 14:56:20 door Adoptive Solution
 
Liefhebber Laravel

Liefhebber Laravel

15/11/2016 15:02:11
Quote Anchor link
Hoi Adaptive Solution,

Deze query geeft nog steeds de foute resultaten... bij 8/11 telt hij 4 uren, maar dat zou 2 moeten zijn omdat die overlappen...

bedankt voor je tijd alvast!
 
Ivo P

Ivo P

15/11/2016 17:05:36
Quote Anchor link
die overlap is nu net wat het zo ontzettend ingewikkeld maakt.

van 14 tot 16 uur en van 17 tot 20 uur is gewoon een optelling
van 14 tot 16 uur en van 15 uur tot 18 uur is het verschil tussen 18 en 14.

Daar kun je mogelijk nog een mooie formule op loslaten die bepaalt of het eerste tijdstip van de 2e event kleiner is dan de eindtijd van de eerste, maar dan zit je nog weer te kijken met de situatie waarbij event 1 pas begon na event 2

en zo'n formule moet overweg kunnen met
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
--------  
           +++++++
en
------------
         +++++++
en
-------------
  +++++
en
-------
+++++++
en
   -----
+++++
en
     ----
++++


en is het ook nog mogelijk dat er meer dan 2 events op een dag zijn?




Toevoeging op 15/11/2016 17:07:59:

Naast DATE_FORMAT() bestaat ook de functie HOUR()
Die is misschien wat mooier om het uur te bepalen?

BTW: gewoon GROUP BY in een query gooien, zeker als er ook nog SELECT * in de query voorkomt, leidt al gauw tot rare resultaten die soms toevallig geven wat je zocht, maar mogelijk niet altijd
 
Liefhebber Laravel

Liefhebber Laravel

16/11/2016 08:27:36
Quote Anchor link
Hoi Ivo P en anderen,

bedankt voor je reactie! Inderdaad, die overlap maakt het ingewikkeld. Ik denk dat ik best alle data per dag binnenhaal, en op PHP hoogte even vergelijk met elkaar, om zo het juiste aantal uren te bepalen.

Ik vul nu een array als volgt op:

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
[03-11-2016] => Array
(
 [start] => Array
     (
         [0] => 12:25:00
         [1] => 14:55:00
         [2] => 19:00:00
     )
 [end] => Array
     (
         [0] => 14:30:00
         [1] => 17:25:00
         [2] => 20:45:00
     )
)


start[0] en end[0] is bv de eerste evenementtijd.
bestaat er een logica/formule om deze te vergelijken en zo het aantal actieve uren te berekenen?

NB; de uren zijn steeds gesorteerd van vroeg naar laat.

Toevoeging op 16/11/2016 09:24:33:

Heren,

ik heb net deze link gevonden: Klik hier

Hier staat een mySQL query die doet wat ik nodig heb! Maar ik krijg hem niet aangepast naar mijn tabel: hier is mijn 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
select DATE(start) as date, TIME_FORMAT(SEC_TO_TIME(sum(secs)), '%h:%i')
from (select t.*,
             @time := if(@sum = 0, 0, TIME_TO_SEC(TIMEDIFF(TIME(start), @prevtime))) as secs,
             @prevtime := TIME(start),
             @sum := @sum + isstart
      from ((select DATE(start), TIME(start), 1 as isstart
             from events t
            ) union all
            (select DATE(start), TIME(end), -1
             from events t
            )
           ) t cross join
           (select @sum := 0, @time := 0, @prevtime := 0) vars
      order by 1, 2
     ) t
group by date;


Ik krijg de foutmelding "Unknown column 'start' in 'field list'

Aan de SQL specialisten: Wat doe ik fout?
Gewijzigd op 16/11/2016 08:29:32 door Liefhebber Laravel
 
Thomas van den Heuvel

Thomas van den Heuvel

16/11/2016 14:57:57
Quote Anchor link
Alternatieve oplossing: sla (afleidbare) tussenresultaten op: introduceer een extra kolom met de tijdsduur. Dit maakt je query vele malen eenvoudiger.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/11/2016 13:14:57
Quote Anchor link
@Jan
In de subquery met de union heb je geen aliassen op DATE(start) en TIME(start).
Hoe dan ook zal de oplossing van SO in jouw geval niet werken, want dan moet je gaan bijhouden wanneer de datum veranderd.
Daarnaast zullen events die op andere datum beginnen dan ze eindigen niet goed door gerekend worden.

Onderstaande methode werkt met datasets:
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
SELECT DATE(t.period_start) adate, SEC_TO_TIME(SUM(t.secs)) atime
FROM
    (SELECT p.period_start,
            CASE WHEN COUNT(e.id) > 0 THEN 900 ELSE 0 END secs
    FROM
        (SELECT
            @begin_period := @begin_period + interval 15 MINUTE period_start,
            @end_period := @begin_period + INTERVAL 14 MINUTE period_end
        FROM
            information_schema.COLLATIONS
        CROSS JOIN
            information_schema.COLLATIONS x
        CROSS JOIN
            (SELECT @begin_period := CURRENT_DATE - INTERVAL 6 DAY - INTERVAL 15 MINUTE) var
        WHERE @begin_period + INTERVAL 29 MINUTE < CURRENT_DATE + INTERVAL 1 DAY
        ) p
    LEFT JOIN
        events e ON p.period_start < e.end_time AND p.period_end > e.start_time
    GROUP BY p.period_start
    ) t
GROUP BY adate

De subquery p genereert een dataset (virtuele tabel) met een interval van 15 minuten van de afgelopen 7 dagen
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
+ ------------------- + ------------------- +
| period_start        | period_end          |
+ ------------------- + ------------------- +
| 2016-11-13 00:00:00 | 2016-11-13 00:14:00 |
| 2016-11-13 00:15:00 | 2016-11-13 00:29:00 |
| 2016-11-13 00:30:00 | 2016-11-13 00:44:00 |
| 2016-11-13 03:00:00 | 2016-11-13 03:59:00 |
.....
| 2016-11-19 22:45:00 | 2016-11-19 22:59:00 |
| 2016-11-19 23:00:00 | 2016-11-19 23:14:00 |
| 2016-11-19 23:15:00 | 2016-11-19 23:29:00 |
| 2016-11-19 23:30:00 | 2016-11-19 23:44:00 |
| 2016-11-19 23:45:00 | 2016-11-19 23:59:00 |
+ ------------------- + ------------------- +

Dan een left join op events die in dat bereik plaats hebben, en via COUNT(id) wordt dan bepaald of een bereik mee geteld moet worden.
SQL Fiddle
Gewijzigd op 19/11/2016 13:18:13 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.