Stel: ik heb een magazijn vol met Stapels Dozen. Als ik een Doos op een lege Stapel zet krijgt deze nummer 1. De doos die ik daar bovenop zet krijgt deze nummer 2, enz.
Dit noem ik even methode A.
Nou wil ik met behulp van SQL deze nummers omkeren, zodat de BOVENSTE doos nummer 1 heeft, die daar onder nummer 2, enz. Dit noem ik methode B
Zelf had ik het volgende bedacht:
B = totaalAantalDozen - A + 1
Waarin A het nummer van de doos volgens methode A is, en
B het nummer van de doos is volgens methode B
Dit krijg ik niet in SQL gemaakt omdat ik dan steeds errors krijg m.b.t. de GROUP BY functie. Wat ik had gemaakt was:
Met de combinatie van COUNT(*) en GROUP BY StapelID wil ik dus het aantal Dozen per StapelID 'laten zien', oftewel totaalAantalDozen. Daar word nummerA (een getal dat gewoon in het database staat) afgetrokken, en daar word vervolgens 1 bij opgeteld.
De error die ik hierbij krijg is dat nummerA, niet opgenomen is in de GROUP BY functie.
Wanneer ik deze erbij zet krijg ik geen errors meer maar totaalAantalDozen klopt dan niet meer.
Dus kortom: weet iemand hoe ik dit kan maken, bijvoorbeeld door te voorkomen dat nummerA in de GROUP BY functie moet staan? Ik heb het een en ander met extra haakjes geprobeerd, met een UNION functie en met 2 SELECT statements, echter zonder resultaat.
Mvg,
Dit noem ik even methode A.
Nou wil ik met behulp van SQL deze nummers omkeren, zodat de BOVENSTE doos nummer 1 heeft, die daar onder nummer 2, enz. Dit noem ik methode B
Zelf had ik het volgende bedacht:
B = totaalAantalDozen - A + 1
Waarin A het nummer van de doos volgens methode A is, en
B het nummer van de doos is volgens methode B
Dit krijg ik niet in SQL gemaakt omdat ik dan steeds errors krijg m.b.t. de GROUP BY functie. Wat ik had gemaakt was:
Code:
SELECT nummerA, (COUNT(*) - nummerA + 1) AS nummerB
FROM Magazijn
GROUP BY StapelID
Met de combinatie van COUNT(*) en GROUP BY StapelID wil ik dus het aantal Dozen per StapelID 'laten zien', oftewel totaalAantalDozen. Daar word nummerA (een getal dat gewoon in het database staat) afgetrokken, en daar word vervolgens 1 bij opgeteld.
De error die ik hierbij krijg is dat nummerA, niet opgenomen is in de GROUP BY functie.
Wanneer ik deze erbij zet krijg ik geen errors meer maar totaalAantalDozen klopt dan niet meer.
Dus kortom: weet iemand hoe ik dit kan maken, bijvoorbeeld door te voorkomen dat nummerA in de GROUP BY functie moet staan? Ik heb het een en ander met extra haakjes geprobeerd, met een UNION functie en met 2 SELECT statements, echter zonder resultaat.
Mvg,