complexe order query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior Java developer (fullstack)

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 »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

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 »

.NET developer

Functie Als .NET ontwikkelaar ga jij aan de slag bij een van onze klanten actief in de High Tech Industrie. Onze klanten zijn voornamelijk gelokaliseerd in de omgeving van Eindhoven. Wij zijn erg selectief als het gaat om de projecten die wij accepteren en richten ons dan ook alleen op innovatieve en complexe projecten. Omdat onze klanten voornamelijk gespecialiseerd zijn in de machinebouw, werk jij ook vaak dicht tegen de machines aan. Ons team bestaat momenteel uit Embedded engineers, IOT developers en Cloud engineers. Wij werken voornamelijk aan Microsoft projecten waar er gebruik wordt gemaakt van WPF, UWP, .NET Core

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

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 »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

C# Ontwikkelaar

Functieomschrijving Voor een software ontwikkelaar in de omgeving van Vught zijn we op zoek naar een gemotiveerde C# ontwikkelaar. Deel jij hun passie voor development en dan vooral in C#.NET? Dan kan dit wel eens jouw droombaan zijn! Jouw werkzaamheden zullen er ongeveer als volgt uit gaan zien Door de wensen van de klant goed te begrijpen ga jij aan de slag dit om te zetten naar passende oplossingen en werk je deze uit tot een sterk eindproduct. Je gaat je bezighouden met de ontwikkeling van webapplicaties en websites, dit doe je door middel van ASP.NET, MVC Frameworks en C#.

Bekijk vacature »

Software developer (PHP) - Utrecht centrum

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »
Lars Anderson

Lars Anderson

20/01/2015 13:37:05
Quote Anchor link
Ik ben bezig aan een complexe query met 2 lagen 1 tot n relaties en daarnaast nog eens een laag 1 tot n relatie. Je moet je dit alsvolgt voorstellen.
Er is een order, aan deze order kunnen meerdere orderregels hangen (bijv. een t-shirt). Aan iedere orderregel kunnen vervolgens weer meerdere eigenschappen hangen (bijv. de kleur of maat van het shirt).
Daarnaast kunnen er nog 1 of meerder orderopties aan de order hangen (bijv. extra's bij de orders die niet op de orderregels thuis horen, maar waar wel een prijs aan hangt).

Nu heb ik het eerste stuk al wel rond gekregen middels subqueries.
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
SELECT
  `order_id`,
  `betaalmethode_prijs`,
  ... (etc.)
FROM
  orders
LEFT JOIN (
  SELECT
    `order_id`
    `order_regel_id`,
    `artikel_prijs`,
    ... (etc.)
  FROM
    order_regels
  LEFT JOIN (
   SELECT
     `order_regel_id`
     `order_regel_eigenchap`,
     `eigenschap_prijs`,
     ... (etc.)
   FROM
     order_regel_eigenschappen
  ) AS ore
  USING `order_regel_id`  
) AS or
USING `order_id`
GROUP BY `order_id`


M.b.v. SUM() krijg ik daar mooi het totaal van een order mee. Echter nu wil ik dus ook de zijtak toevoegen. Ik dacht dit te kunnen doen door simpelweg een extra LEFT JOIN toe te voegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
LEFT JOIN (
  SELECT
    `order_id`,
    `order_optie_id`,
    ... (etc.)
  FROM
    order_opties
) AS oe
USING (`order_id`)


Wat er dan gebeurd is, dat de het totaalbedrag van alles orderopties wordt toegevoegd, maar dan vermenigvuldig met het aantal order regels.
Ik kan er maar niet achterkomen wat er nu fout gaat. Waarschijnlijk (hopelijk!) is het iets heel simpels dat ik over het hoofd zie.
Wie helpt mij het licht te zien ??? ;-)
Gewijzigd op 20/01/2015 13:38:07 door Lars Anderson
 
PHP hulp

PHP hulp

14/05/2024 00:01:49
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2015 22:41:57
Quote Anchor link
>>
M.b.v. SUM() krijg ik daar mooi het totaal van een order mee.

Weet je dat zeker?

Je laat niet de gehele query zien, maar vanuit wat ik kan zien heb je een EAV probleem.

Als een orderregel meerdere eigenschappen heeft zal je hem altijd meerdere malen in je result krijgen.
 
Lars Anderson

Lars Anderson

21/01/2015 09:04:17
Quote Anchor link
Het is eigenlijk een uitbouw op een antwoord wat je me zelf gegeven hebt Ger ;-)
(http://www.phphulp.nl/php/forum/topic/sum-van-datediff-met-unique-idnummer/92914/)
Ik dacht het wat te versimpelen door een voorbeeld met orders te maken, maar wellicht heeft dat het alleen maar onduidelijker gemaakt.

Nog maar eens proberen dan.
Dit was jouw voorbeeld code:
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
SELECT
    SUM(fr.factuurprijs) omzet,
    SUM(fr.nights) aantal_nachten
FROM
    (SELECT
        t1_id,
        f.t1_price + SUM(ro.prijs_reservering) factuurprijs,
        SUM(ro.nachten) nights
    FROM
        facturen f
    JOIN
        (SELECT
            r.t1_id,
            t2_id,
            r.t2_price + COALESCE(SUM(o.t3_price),0) prijs_reservering,
            DATEDIFF(r.t2_end, r.t2_start) nachten
        FROM
            reserveringen r
        LEFT JOIN
            opties o
            USING (t2_id)
        GROUP BY
            r.t1_id,t2_id, nachten
        ) ro
        USING (t1_id)
    GROUP BY
        t1_id
    ) fr

Ik zou aan dit voorbeeld dus naast de geJOINde tabel "reserveringen" (met daarbinnen weer "opties") nog een extra tabel "products" willen toevoegen. Het uiteindelijk resultaat moet dan nog steeds de totaal factuurprijs worden (nu dus aangevuld met de totaalprijs van alle producten uit de separate tabel).

Ik heb het vooralsnog in PHP maar opgelost door een aparte query te gebruiken voor de producten (naast bovenstaande query). Dit betekent echter dat er net zo veel queries uitgevoerd worden als dat er facturen geselecteerd zijn. Dat is niet de ideale situatie. Ik zou het liefst allees in één query willen hebben.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

21/01/2015 14:21:57
Quote Anchor link
Je kan in een SELECT ook een subquery opnemen, deze moet dan wel maar één waarde teruggeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
    .....
    JOIN
        (SELECT
            r.t1_id,
            t2_id,
            (SELECT SUM(product_price) FROM products p
                WHERE p.t1_id = r.t1_id) total_price,
            ......
 



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.