Query uitbreiden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in een ontwikkelteam met 7 .NET developers. In ons team werken er drie senior .NET developer, twee medior .NET developers en twee junior .NET developers. Er is dan ook genoeg senioriteit in ons team om jou te kunnen bieden wat jij nodig hebt! Wij werken in scrum en hebben drie wekelijkste sprints. Daarnaast doen wij minimaal vier keer per jaar een release. Ons platform is ontzettend complex en groot. Het is dan ook in het begin belangrijk dat jij de processen gaat begrijpen. Jij krijgt dan ook een cursus om beter te begrijpen

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 »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

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 »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

Product Developer (M/F), Fulltime 40 h/week

A global Plantbased revolution – that is our dream. Maximising the protein transition – that is our mission. Producing and developing sustainable and delicious products – that is what we do. Ojah is a fast growing company with a mission and has the ambition to be the world leader in its field. To support this growth we are hiring new colleagues. People that would like to make a difference and dare to dream big. With currently a 150 colleagues proudly working on our exceptional products. Working in a dynamic surrounding that runs full speed ahead. We need you! Product Developer

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Front-end (Angular) developer - remote werken

Functie Als Front-end (Angular) developer ga je aan de slag met het uitbouwen van hun webapplicatie, als één van de front-end experts ga je samen met collega’s in een devops team werken aan een nieuw front-end voor hun calculatie oplossing. Binnen de calculatiesoftware kunnen meerdere professionals tegelijk samenwerken, 3D calculaties uitvoeren en ook inzien met de benodigde specifieke details. Deze software wordt veel ingezet om projectbeschrijvingen en kosten in kaart te brengen, en tijdens de uitvoering te bewaken. Maar hiernaast liggen er in de toekomst veel meer plannen op het gebied van front-end in de andere applicaties. Genoeg te doen

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

Bekijk vacature »

Cobol Developer

Dit ga je doen Als Cobol Ontwikkelaar zal je gaan meebouwen aan een onderdeel van het backend systeem waarbij je het functionele ontwerp vertaald naar een technische oplossing die geïntegreerd kan worden in de huidige omgeving. Je zorgt ervoor dat de bedrijfsprocessen op een efficiënte manier worden uitgevoerd en werkt proactief aan het verbeteren hiervan. Samen met jouw collega’s reviewen jullie elkaars code en test je je eigen code. Je werkt nauw samen met andere ontwikkelaars, testers en functioneel ontwerpers. Taken pakket: Beheren en doorontwikkelen van de bestaande omgeving; Vertalen van een functionele vragen naar een technische oplossing; Doorvoeren van

Bekijk vacature »

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving: De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van bromen snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie.De opdracht bestaat uit: het programmeren van de diverse modules;het tijdens demo's tonen van de

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

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

06/12/2023 18:49:33
 
- 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.