Query uitbreiden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead developer

Functie Als Lead developer wordt jij onderdeel van een multidisciplinair team van circa 23 software engineers. Als team werken jullie agile en zijn termen als Continuous Integration en Continuous Delivery dagelijkse koek. Jullie werken aan uitdagende en afwisselende projecten met als doel klanten een totaal oplossing aan te kunnen bieden. Jij wordt verantwoordelijk voor complete projecten waarbij jij als verantwoordelijke zorgt dat het project op de juiste manier blijft draaien. Zo haal jij ook de requirements op bij de klant en kijk jij samen met het team en met de salesafdeling hoeveel uren hiervoor nodig zijn. Daarnaast stuur jij jouw

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 »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »

Junior .NET Software Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

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 »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Senior PHP Developer

Als Senior PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn en coach je andere developers op de hard en soft skills. Wat doe je als Senior PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

Bekijk vacature »

Back-end Developer (Permanent position with the em

Bedrijfsomschrijving Dutch specialist in technical installation materials. Functieomschrijving Purpose of the position: Our client is looking for a Back-end Developer who, together with the rest of the energetic and dynamic team, is responsible for the development and management of the website. This not only concerns the development and management of the current website, but also the development of a new Headless Commerce Platform to keep the customer's website Future proof. Within the IT department, there is a real DevOps culture and the commerce team is at the forefront and tries to implement continuous improvements. Most important tasks: ï‚· Designing and

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

PHP Developer

Functie omschrijving Als PHP Developer ga jij aan de slag met uitdagende software projecten. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Deze software bouw je vooral in PHP en specifiek Laravel. Dit framework kent dus geen geheimen voor jou. De software die jij gaat ontwikkelen is heel divers, van urenregistratiesystemen tot compleet geautomatiseerde tools. In deze veelzijdige functie ga jij je zeker niet vervelen, elke dag bestaat weer uit nieuwe uitdagingen. Bedrijfsprofiel Deze

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »
Frits van Leeuwen

Frits van Leeuwen

04/10/2023 22:12:24
Quote Anchor link
Hallo,

Ik heb een query met Select.
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
SELECT
                IF (SUBSTRING(prstshp_product_lang.name, 1, 2) = '1 ',
                    
                    LOWER( SUBSTRING_INDEX(
                    SUBSTRING(
                        prstshp_product_lang.name,
                        LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) ) + 2,
                        LENGTH( prstshp_product_lang.name ) - LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) )
                    ), ' - ', 1 ) ),
                    
                      LOWER( SUBSTRING_INDEX( prstshp_product_lang.name, ' - ', 1 ) )
                    
                ) AS soort,

                SUM(
                    IF (prstshp_product.product_type = 'pack',
                        prstshp_order_detail.product_quantity * prstshp_pack.quantity,
                        prstshp_order_detail.product_quantity
                    )
                ) AS AantalInSoort
                
                FROM prstshp_orders
                LEFT JOIN prstshp_order_detail
                    on prstshp_order_detail.id_order = prstshp_orders.id_order
                    
                LEFT JOIN prstshp_pack
                    on prstshp_pack.id_product_pack = prstshp_order_detail.product_id

                LEFT JOIN prstshp_product
                    ON (prstshp_product.id_product = prstshp_order_detail.product_id AND prstshp_product.product_type = '')
                    OR (prstshp_product.id_product = prstshp_pack.id_product_item )
                    
                LEFT JOIN prstshp_product_lang
                    on prstshp_product_lang.id_product = prstshp_product.id_product
                    AND prstshp_product_lang.id_lang = 1
                    AND prstshp_product_lang.id_shop = prstshp_orders.id_shop
                    
                WHERE ".$current_status."
                
               GROUP BY
                    prstshp_orders.id_order, soort;


De uitkomst van deze query zijn 2 velden: soort en AantalInSoort
Ik wil de regels die hierin voorkomen, vergelijken met een database tabel: prstshp_collect_productstype_packing
Deze tabel bevat:
- id (autom.nummer)
- producttype (text)
- quantity (int)
- id_packing (maar deze is even niet van belang)

De regels die er nog niet in voorkomen, moeten er aan worden toegevoedgd.

Ik ben benieuwd of iemand een oplossing weet.
Alvast bedankt,
Frits
Gewijzigd op 04/10/2023 22:32:13 door - Ariën -
 
PHP hulp

PHP hulp

15/05/2024 01:56:36
 
- Ariën  -
Beheerder

- Ariën -

04/10/2023 22:31:23
Quote Anchor link
Het was even kijken, maar zelf zit ik aan een subquery met INSERT te denken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, SUM(AantalInSoort)
FROM (.............


En dit op het einde:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ON DUPLICATE KEY UPDATE quantity = quantity + VALUES(quantity);
Gewijzigd op 04/10/2023 22:31:35 door - Ariën -
 
Ad Fundum

Ad Fundum

05/10/2023 10:12:23
Quote Anchor link
Ik neem aan dat `soort` en `AantalInSoort` overeenkomen met de kolommen `producttype` en `quantity` in de tabel `prstshp_collect_productstype_packing` (waaruit ik afleid dat je PrestaShop gebruikt?)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
WITH nieuw AS (  -- rekent tussentijds resultaat uit
  SELECT soort, AantalInSoort
  FROM (<je query>) AS bron
    LEFT JOIN prstshp_collect_productstype_packing AS doel
    ON bron.soort = doel.producttype
  WHERE doel.id IS NULL  -- rij is niet aanwezig in doeltabel
)
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, AantalInSoort
FROM nieuw

Dit voegt de regels toe die nog niet voorkomen zoals je vroeg.

Het tussentijdse resultaat is van belang omdat je niet tegelijkertijd data kan selecteren uit de tabel die je gaat wijzigen.
Gewijzigd op 05/10/2023 10:13:07 door Ad Fundum
 
Frits van Leeuwen

Frits van Leeuwen

05/10/2023 12:16:26
Quote Anchor link
- Ariën - en Ad Fundum bedankt voor het antwoord. Ik heb een hoop van jullie geleerd.

En ja ik gebruik Prestashop. Maar ik heb er wel wat tabellen naast gebouwd en wat php pagina's om onze verzending beter te stroomlijnen. Ik wil nu per order bekijken welke verpakking in nodig heb. Het vullen van de eerder genoemde tabel is daar ook een onderdeel van.

producttype is van het type text met utf8_general_ci
quantity is van het type int(11)

Ik weet niet of dat dat juist is als ik het vergelijk met de query. Maar ik denk van wel.


Toevoeging op 05/10/2023 13:32:59:

Ik probeer hem eerst uit voor ik het in php code ga zetten.
In PHPMyAdmin krijg ik de volgende foutmelding:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
#1064 - Er is iets fout in de gebruikte syntax bij 'INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SEL...' in regel 55


de code zoals ik die nu heb is als volgt:
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
WITH nieuw AS (  -- rekent tussentijds resultaat uit
  SELECT soort, AantalInSoort
  FROM (
             SELECT
                IF (SUBSTRING(prstshp_product_lang.name, 1, 2) = '1 ',
                    
                    LOWER( SUBSTRING_INDEX(
                    SUBSTRING(
                        prstshp_product_lang.name,
                        LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) ) + 2,
                        LENGTH( prstshp_product_lang.name ) - LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) )
                    ), ' - ', 1 ) ),
                    
                      LOWER( SUBSTRING_INDEX( prstshp_product_lang.name, ' - ', 1 ) )
                    
                ) AS soort,

                SUM(
                    IF (prstshp_product.product_type = 'pack',
                        prstshp_order_detail.product_quantity * prstshp_pack.quantity,
                        prstshp_order_detail.product_quantity
                    )
                ) AS AantalInSoort
                
                FROM prstshp_orders
                LEFT JOIN prstshp_order_detail
                    on prstshp_order_detail.id_order = prstshp_orders.id_order
                    
                LEFT JOIN prstshp_pack
                    on prstshp_pack.id_product_pack = prstshp_order_detail.product_id

                LEFT JOIN prstshp_product
                    ON (prstshp_product.id_product = prstshp_order_detail.product_id AND prstshp_product.product_type = '')
                    OR (prstshp_product.id_product = prstshp_pack.id_product_item )
                    
                LEFT JOIN prstshp_product_lang
                    on prstshp_product_lang.id_product = prstshp_product.id_product
                    AND prstshp_product_lang.id_lang = 1
                    AND prstshp_product_lang.id_shop = prstshp_orders.id_shop
                    
                WHERE current_state=2
                    OR current_state=3
                    OR current_state=11
                    OR current_state=20
                
               GROUP BY
                    prstshp_orders.id_order, soort
  ) AS bron
    
    LEFT JOIN prstshp_collect_productstype_packing AS doel
    ON bron.soort = doel.producttype
    
  WHERE doel.id IS NULL  -- rij is niet aanwezig in doeltabel
)
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, AantalInSoort
FROM nieuw;
 
Ad Fundum

Ad Fundum

06/10/2023 08:46:27
Quote Anchor link
Frits van Leeuwen op 05/10/2023 12:16:26:
producttype is van het type text met utf8_general_ci
quantity is van het type int(11)

Kan je negeren tot het misgaat; MySQL / MariaDB doen net als PHP aan impliciete type casting, dwz. ze passen het datatype aan naar gelang de producten denken dat het goed is, ook al is dat soms niet precies wat je bedoelt (en dan pas moet je bijsturen).
Als je op mijn spoor zit en liever voorkomt dan geneest, moet je een andere database als PostgreSQL gebruiken, of zelf heel scherp in de gaten houden wat MySQL / MariaDB aan het doen is. En dat is geen doen.
 
Ivo P

Ivo P

06/10/2023 11:26:15
Quote Anchor link
mis je niet een ; voor INSERT?
 
Frits van Leeuwen

Frits van Leeuwen

06/10/2023 12:21:59
Quote Anchor link
In het voorstel van "Ad Fundum" staat die ook niet.
Ik ben nog niet zo thuis in SQL dat ik deze variant ken, maar aangezien het "nieuw" als een tabel in het geheugen wordt gemaakt en vervolgens in de INSERT wordt gebruikt, lijkt mij dat hier geen ; moet. Maar misschien dat "Ad Fundum" dit beter kan verklaren.
Gewijzigd op 06/10/2023 12:22:34 door Frits van Leeuwen
 
Ad Fundum

Ad Fundum

06/10/2023 14:08:20
Quote Anchor link
Even een reactie tussendoor.
De syntax in mijn vorige vorige post heet CTE (Common Table Expressions), en kan je gebruiken om queries te versimpelen en om zogenaamde recursieve queries te maken.
In mijn post gebruik ik het, omdat het resultaat van een CTE eerst wordt uitgerekend door de database, waarna je het resultaat kan gebruiken in een andere query. Zonder dat het tussentijdse resultaat nog verandert.

Zie ook:
- https://www.mysqltutorial.org/mysql-cte/
- https://dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions
- https://stackoverflow.com/questions/15574281/using-the-with-clause-in-an-insert-statement
Gewijzigd op 06/10/2023 14:09:16 door Ad Fundum
 
Frits van Leeuwen

Frits van Leeuwen

06/10/2023 14:22:30
Quote Anchor link
Ad Furdum, bedankt voor de verduidelijking. In tussen ben ik ook opzoek gegaan naar het WITH statement op deze manier. En vond er ook wel iets over.

Waar ik nu over struikel is regel 55. Er zou iets fout zijn, maar ik heb geen idee wat. Want als ik die regel weg laat, vervolgt hij met de SELECT regel en dan krijg ik keurig een lijstje. Maar ik wil natuurlijk de INSERT INTO regel wel er in hebben. Anders krijg ik mijn doel niet. of ik moet het met PHP gaan oplossen. Dat zou jammer zijn.
 
Ad Fundum

Ad Fundum

06/10/2023 15:52:11
Quote Anchor link
Ik moet m'n eigen linkjes beter lezen - in tegenstelling tot wat alle andere databases doen ondersteunt MySQL de constructie WITH .. INSERT INTO niet.
Dus mijn suggestie werkt niet in MySQL.

Ik zou nog kunnen opperen om het het herschrijven zonder WITH:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, AantalInSoort
FROM (
  SELECT soort, AantalInSoort
  FROM (<je query>) AS bron
    LEFT JOIN prstshp_collect_productstype_packing AS doel
    ON bron.soort = doel.producttype
  WHERE doel.id IS NULL
) AS nieuw

Maar ik kan daarvan niet inschatten of dat het gewenste resultaat oplevert omdat je tegelijkertijd leest en schrijft naar dezelfde tabel. Dus het beste dat ik je kan aanraden is om het in PHP te doen omdat MySQL het niet kan.

Toevoeging op 06/10/2023 17:10:10:

Oké, dat is wel pessimistisch gesteld. Je kunt (zoals alles in MySQL) het werk zelf doen en zelf een tijdelijke tabel aanmaken met het tussenresultaat.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
CREATE TEMPORARY TABLE nieuw AS
SELECT soort, AantalInSoort
  FROM (<je query>) AS bron
    LEFT JOIN prstshp_collect_productstype_packing AS doel
    ON bron.soort = doel.producttype
  WHERE doel.id IS NULL;

En daarna:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, AantalInSoort FROM nieuw;

Om veilig te zitten zou je beide queries in een transactie moeten zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
START TRANSACTION;
<eerste query>
<tweede query>
COMMIT;

Maar het was leuker geweest als MySQL (net als alle andere databases) gewoon WITH ... INSERT INTO had ondersteund.
Gewijzigd op 06/10/2023 15:52:52 door Ad Fundum
 
Frits van Leeuwen

Frits van Leeuwen

06/10/2023 23:55:31
Quote Anchor link
Heel erg bedankt dat je de moeite neemt voor het helpen oplossen van het probleem.
Ik kan me voorstellen (na jouw uitleg) dat dit ook niet gaat werken. Dat moet dan inderdaad zijn omdat je schrijft en leest in de zelfde tabel.
Ik had eerder ook aan deze oplossing gedacht, maar dat lukte toen ook niet. Maar dat kan zijn omdat mijn insteek fout was.

Nu lukt het wel. Hartelijk dank.

De code die uiteindelijk werkt is:
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
INSERT INTO prstshp_collect_productstype_packing (producttype, quantity)
SELECT soort, aantalinsoort
FROM (
  SELECT soort, aantalinsoort
  FROM (
   -- start bron
   SELECT
            IF (SUBSTRING(prstshp_product_lang.name, 1, 2) = '1 ',
                LOWER( SUBSTRING_INDEX(
                    SUBSTRING(
                        prstshp_product_lang.name,
                        LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) ) + 2,
                         LENGTH( prstshp_product_lang.name ) - LENGTH( SUBSTRING_INDEX( prstshp_product_lang.name, ' ', 2 ) )
                    ), ' - ', 1 ) ),
                LOWER( SUBSTRING_INDEX( prstshp_product_lang.name, ' - ', 1 ) )
            ) AS soort,

            SUM(
                IF (prstshp_product.product_type = 'pack',
                    prstshp_order_detail.product_quantity * prstshp_pack.quantity,
                    prstshp_order_detail.product_quantity
                )
              ) AS aantalinsoort

        FROM prstshp_orders
              LEFT JOIN prstshp_order_detail
                  on prstshp_order_detail.id_order = prstshp_orders.id_order

              LEFT JOIN prstshp_pack
                  on prstshp_pack.id_product_pack = prstshp_order_detail.product_id

              LEFT JOIN prstshp_product
                  ON (prstshp_product.id_product = prstshp_order_detail.product_id AND prstshp_product.product_type = '')
                  OR (prstshp_product.id_product = prstshp_pack.id_product_item )

              LEFT JOIN prstshp_product_lang
                  on prstshp_product_lang.id_product = prstshp_product.id_product
                  AND prstshp_product_lang.id_lang = 1
                  AND prstshp_product_lang.id_shop = prstshp_orders.id_shop

        WHERE current_state=2
            OR current_state=3
               OR current_state=11
            OR current_state=20

        GROUP BY
            prstshp_orders.id_order, soort  
      
  ) AS bron
    
    LEFT JOIN prstshp_collect_productstype_packing AS doel
    ON bron.soort = doel.producttype
    
  WHERE doel.id IS NULL
  GROUP BY soort, aantalinsoort  
) AS nieuw
Gewijzigd op 06/10/2023 23:59:21 door Frits van Leeuwen
 



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.