Query uitbreiden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

Laravel / PHP developer

Functie omschrijving Wij zijn op zoek naar een Medior PHP / Laravel Developer voor een IT-consultancy in de omgeving van Hoofddorp! Ben jij op zoek naar een leuke nieuwe uitdaging binnen een veelzijdige werkomgeving? Lees dan snel verder! Binnen dit bedrijf werk je in een ontwikkelteam, waarin je zeer betrokken bent en meedenkt over softwareoplossingen. Binnen dit Team hou je je bezig met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken;

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web 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 also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Laravel developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

Back-end Developer C#

Functie omschrijving We are looking for a dutch native speaker Ben jij een ervaren back-end developer, die graag in een in-house functie wil werken? Passen de woorden innovatie, programmeren en teamspeler bij jou? Zoek niet verder en lees snel verder. Voor een echt familiebedrijf in de regio van Uden ben ik op zoek naar een back-end developer, die met name kennis heeft van C# en .NET. Jij gaat de interne applicaties verder optimaliseren en nieuwe features ontwikkelen. Verder ga je de volgende werkzaamheden uitvoeren: Ondersteunen gebruikers; Uitvoeren van analyses van de software/applicaties; Maken van functionele ontwerpen en deze door vertalen

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 »

Back End Developer

As a Back End developer at KUBUS you will be developing the (web) application and services of BIMcollab. You have a focus on the back end of our software, for which we mainly work with C# and .NET. We use a full-stack approach, which means that in addition to the back-end, you will also help with other parts of the code. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact

Bekijk vacature »

Fullstack of back-end PHP developer

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 Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer .NET, C# voor een gaaf bedrijf in de omgeving van Utrecht! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Lees dan snel verder! Voor een opdrachtgever in de omgeving van Utrecht, zijn wij op zoek naar een Junior Software Developer. Werk jij graag aan verschillende projecten en ga je graag klanten op bezoek? Dan is dit de ideale functie voor jou! Binnen deze functie

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

17/05/2024 05:51:42
 
- 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.