Ik probeer een winkelmandje in een order + orderregel te schrijven in een sql-database van C# asp.net.
de orderregel zal een bestelnummer, totale prijs, productid, hoeveelheid etc. bevatten voor elk item in het winkelmandje. De bestelling zelf zal het bestelnummer als primaire sleutel bevatten en hierdoor worden gekoppeld aan de verschillende regels.
Alles werkte prima gisteren, maar nu ik probeerde een SELECT-opdracht te gebruiken in de insert-in-instructie om dingen dynamischer te maken, krijg ik de hierboven beschreven syntaxisfout.
Weet iemand wat er mis is met deze verklaring:
INSERT INTO [order]
(klant_id,totaalprijs,btw,subtotaal,verzendkosten)
SELECT klant.id
, SUM(orderregel.totaalprijs)
, SUM(orderregel.btw)
, SUM(orderregel.totaalprijs) - SUM(orderregel.btw)
, 7.50
FROM orderregel
INNER JOIN
klant
ON [order].klant_id = klant.id
WHERE klant.username = 'jerry'
GROUP BY
id;
het ordernummer in de tabel "order" staat op autonumber, in de asp-codebehandeling is er een voor elk die de regels behandelt die voor elk product worden geschreven, er is een index ingesteld op 0 buiten deze lus en is verhoogd met 1 aan elk uiteinde ervan . De uitvoering van de bestelling wordt slechts één keer uitgevoerd aan het begin van de eerste lus en de regels worden achteraan toegevoegd met MAX (ordernummer) als ordernummer.
Ik hoop dat ik voldoende informatie heb verstrekt en dat iemand in staat is om mij te helpen.
Bij voorbaat dank!
BEWERK:
bedankt iedereen, met behulp van deze vraag deed het!
VOEG IN [bestelling]
(klant_id, totaalprijs, btw, subtotaal, verzendkosten) SELECT (SELECT klant.id FROM klant WHERE klant.username = 'jerry'),
SUM (orderregel.totaalprijs), SUM (orderregel.btw),
SUM (orderregel.totaalprijs) - SUM (orderregel.btw), 7.50 FROM
orderregel;