[SQL] Between

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

C# Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Wil jij graag aan de slag als C# ontwikkelaar en jouw skills verder ontwikkelen? Zoek niet verder! Als C# ontwikkelaar ga je aan de slag met de volgende taken: (verdere) ontwikkeling van de software voor de interne processen binnen een .net omgeving; optimaliseren van de dataprocessing; ontwerpen en implementeren van zowel desktop- als web-programmatuur; ontwikkeling van tools ten behoeve van consultants en klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Den Bosch. Zij ontwikkelen business intelligence software voor een specifieke branche. Dit houdt in dat zij dashboards ontwikkelen

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

Belastingdienst - Freelance Senior Applicatie ontw

Startdatum: 01.06.2023 Richttarief: €65,00 - €75,00 Duur van de opdracht: 6 maanden Uren per week: 36 Taal: Nederlands vereist! Gelieve in het Nederlands te solliciteren. Functieomschrijving: We verwachten van je, dat je: Brede ervaring hebt als JAVA-ontwikkelaar; Ervaring hebt met Agile/Scrum-werken en je thuis voelt in een Agile omgeving; Een aandeel levert aan het scrumproces en in de SAFe-releasetrain; Zelfstandig werkt in een scrumteam en intensief de samenwerking op zoekt met je directe collega’s en je omgeving; Ervaring meebrengt met het schattten en inplannen van taken tot en met het testen en demonstreren van de opgeleverde functionaliteit; Collega’s in je

Bekijk vacature »

C# .NET Developer

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet

Bekijk vacature »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

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 »

E-Identity Developer met Projectleider Kwaliteiten

Functieomschrijving Voor de kamer van koophandel zijn we op zoek naar een E-Identity developer met projectleider kwaliteiten. Voor deze opdracht zoekt KVK een Informatieanalist met Technisch Projectleider en ICT developer kwaliteiten, met kennis van E-identity. We zoeken in de breedte en niet specifiek in de diepte qua skillset. Een Junior Projectmanager, een Junior Informatieanalist, een Junior Developer (full stack), een Junior Designer en een Junior ICT architect ineen, met een sterk gevoel van stakeholder management en planning vaardigheden. Door de internationale setting, én de realisatie van ontsluiting van en naar basisregisters toe zijn wij op zoek naar enige ervaring binnen

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Junior Front end developer

Functie Als Front end 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 »

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 »

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 »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Senior PHP developer/ Software Architect

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »
Niels van K

Niels van K

14/03/2013 14:32:53
Quote Anchor link
Goedemiddag,

Ik geraak er even niet meer uit (wellicht te lang bezig geweest :-) ). Ik heb de volgende query:

SELECT DISTINCT c.cus_id, c.firstname, c.lastname, c.credit, c.address, c.postal, c.city FROM customer_list AS c, transactions AS t WHERE t.transdate NOT BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 18 MONTH) AND DATE(NOW()) AND t.to_customer != '1' AND t.from_customer = c.cus_id ORDER BY c.lastname ASC

De bedoeling is om de klantgegevens uit de database te halen die geen transacties hebben gehad in de periode van de 18 afgelopen maanden. Echter krijg ik ook de resultaten terug van klanten die wel transacties hebben gehad in de afgelopen maanden en transacties hebben gehad voor de 18 maanden.

Aangezien mijn SQL kennis niet al te groot is, zou ik het zo in PHP kunnen omschrijven:

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
<?php
    $cus_query
= mysql_query("SELECT cus_id, firstname, lastname, credit, address, postal, city FROM customer_list ORDER BY lastname ASC");
    while ($cus_result = mysql_fetch_assoc($cus_query))
    {

        $trans_query = mysql_query("SELECT FROM transactions WHERE from_customer = '" .
            $cus_result['cus_id'] .
            "' AND transdate BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 18 MONTH) AND DATE(NOW()) AND to_customer != '1'");
        if (mysql_num_rows($trans_query) == 0)
        {

            echo '<tr>
    <td>'
. $cus_result['cus_id'] . '</td>
    <td>'
. $cus_result['firstname'] . '</td>
    <td>'
. $cus_result['lastname'] . '</td>
    <td>'
. $cus_result['address'] . '</td>
    <td>'
. $cus_result['postal'] . '</td>
    <td>'
. $cus_result['city'] . '</td>
    <td>'
. $cus_result['credit'] . '</td>
  </tr>'
;
        }
    }

?>


Dit werkt ook, maar natuurlijk niet netjes en de performance op deze manier is ook niet al te best (> 100.000 transacties).

Kan iemand mij een schop in de goede richting geven om dit enkel met één SQL query af te kunnen?

B.V.D.

Niels.
Gewijzigd op 14/03/2013 14:38:32 door Niels van K
 
PHP hulp

PHP hulp

05/01/2025 08:42:03
 
Ward van der Put
Moderator

Ward van der Put

14/03/2013 15:14:56
Quote Anchor link
Je kunt de relatie tussen de twee tabellen omkeren. Uit de transacties selecteer je de klant-ID's van alle klanten waarvan de laatste transactie ouder dan 18 maanden is. Vervolgens koppel je daaraan met een JOIN op de klant-ID de overige klantgegevens.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

15/03/2013 13:07:53
Quote Anchor link
Dat kan maar dan vallen de klanten die geen transacties hebben er buiten.
 
Niels van K

Niels van K

07/04/2013 15:34:26
Quote Anchor link
Excuses voor mijn erg late reactie, er was iets tussen gekomen.

@ Ward: Goed idee, maar dan krijg je het probleem wat Ger beschrijft.

Ik heb vanmiddag nog even gepuzzeld, maar ik krijg het niet voor elkaar met alleen SQL queries. Met PHP wil het wel lukken, alleen de performance is 0.

Kan iemand mij een duwtje in de goede richting geven?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/04/2013 15:51:26
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT c.cus_id, c.lastname
FROM customers c
LEFT JOIN transactions t
    ON t.cus_id = c.cus_id
    AND t.transdate BETWEEN CURRENT_DATE AND CURRENT_DATE - INTERVAL 18 MONTH
WHERE t.cus_id IS NULL
Gewijzigd op 07/04/2013 15:52:50 door Ger van Steenderen
 
Niels van K

Niels van K

07/04/2013 16:01:10
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
SELECT c.cus_id, c.lastname
FROM customer_list AS c
LEFT JOIN transactions AS t
    ON t.from_customer = c.cus_id
    AND t.transdate BETWEEN DATE_SUB(DATE(NOW()), INTERVAL 18 MONTH) AND DATE(NOW())
WHERE t.from_customer IS NULL


Zal hem dan moeten worden. Echter loopt de DB hierop vast. Waarom gebruik je de IS NULL functie in de WHERE clause?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/04/2013 16:14:31
Quote Anchor link
Door de LEFT JOIN blijven de kolommen uit de rechter tabel die niet aan de join voorwaarden voldoen leeg.
Heeft een klant altijd minimaal 1 transactie kun je de query simpeler maken door een INNER JOIN en een GROUP BY :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT c.cus_id, c.last_name, MAX(t.transdate) lasttrans
FROM
    customer c
INNER JOIN
    transactions t
    ON t.from_customer = c.cus_id
GROUP BY
     c.cus_id, c.last_name
HAVING MAX(t.transdate) < CURRENT_DATE - INTERVAL 18 MONTH
Gewijzigd op 07/04/2013 16:15:04 door Ger van Steenderen
 
Niels van K

Niels van K

07/04/2013 16:22:01
Quote Anchor link
Oke, ik snap hem. In 99% van de gevallen zal er minimaal één transactie bestaan, maar er is een kleine kans dat dit niet het geval is.

Echter, iedere klant betaalt lidmaatschap aan klant nummer 1 elke maand. Deze transacties moeten niet meegeteld worden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT c.cus_id, c.lastname, MAX(t.transdate) lasttrans
FROM
customer_list c
INNER JOIN
transactions t
ON t.from_customer = c.cus_id AND t.to_customer != 1
GROUP BY
c.cus_id, c.lastname
HAVING MAX(t.transdate) < CURRENT_DATE - INTERVAL 18 MONTH
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/04/2013 16:37:27
Quote Anchor link
Oké, werkt dit nu beter?
 
Niels van K

Niels van K

07/04/2013 16:43:32
Quote Anchor link
Ik krijg veel rijen terug, maar heb er een paar tussen uit gepakt, en het ziet er goed uit!

Het enige 'nadeel' wat ik van je begrijp, is dat klanten die _geen_ transacties hebben, worden ook niet meegenomen in het lijstje? Is dit ook nog te verhelpen?
Gewijzigd op 07/04/2013 16:44:25 door Niels van K
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

07/04/2013 16:56:05
Quote Anchor link
Ja, een LEFT JOIN ervan maken. Ik denk dat dat al voldoende is, anders een extra voorwaarde aan de HAVING toe voegen (OR MAX(t.transdate) IS NULL).
 
Niels van K

Niels van K

07/04/2013 17:05:08
Quote Anchor link
Natuurlijk, makkelijk denken kan ook... Echter krijg ik bij beide query's evenveel rows terug (lijkt me zeer onwaarschijnlijk). Bij een LEFT JOIN blijft het denkwerk voor de database. Ik zal me deze week ook eens meer gaan verdiepen in JOIN.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT c.cus_id, c.lastname, MAX(t.transdate) lasttrans
FROM
customer_list c
INNER JOIN
transactions t
ON t.from_customer = c.cus_id AND t.to_customer != 1 AND active = 'Y'
GROUP BY
c.cus_id, c.lastname
HAVING MAX(t.transdate) < CURRENT_DATE - INTERVAL 18 MONTH OR MAX(t.transdate) IS NULL


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT c.cus_id, c.lastname, MAX(t.transdate) lasttrans
FROM
customer_list c
INNER JOIN
transactions t
ON t.from_customer = c.cus_id AND t.to_customer != 1 AND active = 'Y'
GROUP BY
c.cus_id, c.lastname
HAVING MAX(t.transdate) < CURRENT_DATE - INTERVAL 18 MONTH
 



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.