Ben bezig met een artikelen pagina waar op ik het volgende wil...

ik heb een overzicht met verkochte artikelen, nu wil ik hier voor de rekening presenteren.

kort gezegt, aantal * prijs = bedrag
en onder aan het totaal bedrag...

Het lijkt me echt een school voorbeeld, echter ik heb dit nooit op school geleerd... (of niet goed opgelet :-o )

ik heb het volgende geprobeerd, maar ik loop vast...

<?php
//gevonden artikelen op deze bon werkbon
$sql_artikelen = "
SELECT
werkbon,
artikel,
aantal,
merk,
omschrijving,
VAP_ex_BTW,
aantal*VAP_ex_BTW AS bedrag
FROM
artikelregel, artikelen
WHERE
artikel = artikelnr AND werkbon = $bonnr ORDER BY artikelregel
";
?>

nu nog iets van SUM(bedag) in de query verwerken, denk ik, maar hoe..
na een ochtendje google-en kom ik nog niet echt verder..
Het totaal kun je niet met dezelfde query opvragen, het totaal betreft tenslotte een sommatie van een groep records en niet een som van 1 record.

Tip: Bereken het totaal in PHP met behulp van de gegevens die je met bovenstaande query hebt opgehaald. Al kun je natuurlijk een aparte query hier voor schrijven.

Voorbeeldje:

SELECT
  SUM(aantal*VAP_ex_BTW) AS totaal                    
FROM 
  artikelregel, artikelen
WHERE
  artikel = artikelnr 
AND 
  werkbon = $bonnr


Dikke kans dat de query fout is, ik heb geen idee uit welke tabellen welke data moet komen, de "JOIN" die je nu hebt, blinkt niet uit in duidelijkheid. Het kan zelfs zijn dat je voor de SUM helemaal geen JOIN nodig hebt, dan kun je dat stuk nog verwijderen.
dank voor de reactie,
mn datamodel is wellicht voor een buitenstaander een beejte onduidelijk, echter voormij issie helemaal duidelijk genoeg.

mn artikelen tabel bevat de artikelen en dus ook de prijzen, de artikelregel tabel is mn relatie tabel. hier is staan het aantal verkochte artikelen. dus volgens mij is er dan zeker een JOIN nodig.

nogmaals dank voor de reactie, ik heb bovenstaande geprobeerd en het werkt!
De onduidelijkheid ontstaat doordat je geen aliassen gebruikt, nu moet de database (en diegene die je probeert te helpen) gaan raden wat nu waar vandaan moet komen. Hier ga je ook nog bugs mee krijgen.

Voorbeeldje hoe het wel moet:

SELECT
  art.id,
  regel.verkoopprijs
FROM
  artikelen AS art
    JOIN
      artikelregel AS regel ON art.id = regel.id_artikel

Geen idee of de query ergens op slaat, maar je ziet precies welke kolom nu uit welke tabel moet komen en welk verband er tussen beide tabellen is. Het is nu ook mogelijk om het id uit beide tabellen te halen, art.id is tenslotte een andere kolom dan regel.id De database hoeft niet meer te raden en zal minder foutmeldingen opleveren.
ik geloof dat ik je begrijp,
<?php
//gevonden artikelen op deze bon werkbon
$sql_artikelen = "
SELECT
artikelregel.werkbon,
artikelregel.artikel,
artikelregel.aantal,
artikelen.merk,
artikelen.omschrijving,
artikelen.VAP_ex_BTW,
artikelregel.aantal*artikelen.VAP_ex_BTW AS bedrag
FROM
artikelregel, artikelen
WHERE
artikelregel.artikel = artikellen.artikelnr AND artikelregel.werkbon = $bonnr ORDER BY artikelregel
";
?>

zoiets?
remco schreef op 30.11.2008 14:04
mn artikelen tabel bevat de artikelen en dus ook de prijzen, de artikelregel tabel is mn relatie tabel. hier is staan het aantal verkochte artikelen. dus volgens mij is er dan zeker een JOIN nodig.


Ik zou de prijzen in je artikelregel tabel zetten, je wilt niet dat als je de prijs van een artikel aanpast iemand zijn order veranderd, of orders in het verleden niet meer kloppen.

Reageren