Ik probeer enkele gegevens uit een order tabel te halen. In deze tabel staan alle verschillende artikelen die bij een order horen.
Om diverse redenen staat, indien een artikel 2 keer of meer gekocht is, deze ook 2 keer of vaker in de tabel. Helaas hier kan ik niets aan veranderen
.
Nu wil ik een query maken die uit deze tabel alle artikelen behorende bij een bepaalde order haalt, en hiervan enkele gegevens opvragen. Het liefst wil ik dan ook dat ik de query dubbele eruit filter. Dit kan middels DISTINCT. Dit lukt mij ook wel alleen wil ik iets extra's waarbij ik niet weet hoe ik dat voor elkaar kan krijgen...
Hierbij eerste de query zoals ik die gebruik:
<orderID> wordt vervangen door ID order.
Wanneer ik deze query run krijg ik netjes alle artikelen terug. Indien er dubbele artikelen zijn die verder dezelfde gegevens hebben (=Status ed.) staan deze artikelen ook maar 1 keer in de results. Indien bv. de status anders is krijg ik het artikel 2 keer.
Nu wil ik graag weten of het mogelijk is om, indien er een DISTINCT gedaan wordt, of ik enkele velden dan bij elkaar kan optellen. Een voorbeeld hiervan is fldAmount. Nu krijg ik namelijk maar 1 keer het artikel te zien, terwijl de klant het artikel misschien 2 keer gekocht heeft. Kan ik het fldAmount veld dan de beide records op laten tellen, zodat ik 2 keer het fldAmount te zien krijg???
Ik kan op zich die DISTINCT wel weghalen en dan in mijn eigen code op dubbele zoeken, maar dit is misschien wel een stuk sneller?!?
Ik kon hier niets van gevonden krijgen, maar misschien zoek ik met de verkeerde zoektermen.
Om diverse redenen staat, indien een artikel 2 keer of meer gekocht is, deze ook 2 keer of vaker in de tabel. Helaas hier kan ik niets aan veranderen
Nu wil ik een query maken die uit deze tabel alle artikelen behorende bij een bepaalde order haalt, en hiervan enkele gegevens opvragen. Het liefst wil ik dan ook dat ik de query dubbele eruit filter. Dit kan middels DISTINCT. Dit lukt mij ook wel alleen wil ik iets extra's waarbij ik niet weet hoe ik dat voor elkaar kan krijgen...
Hierbij eerste de query zoals ik die gebruik:
code:
1
2
3
4
5
6
7
8
9
10
| SELECT DISTINCT
tbdOrderItem.fldItemName, tbdOrderItem.fldItemCode,
tbdOrderItem.fldAmount, tbdOrderItem.fldWebDeliverd,
tbdOrderItem.fldTax, tbdOrderItem.fldTaxID,
tbdOrderItem.fldTaxAmount, tbdStatus.fldStatus,
tbdStatus.fldID AS fldStatusID
FROM tbdOrderItem INNER JOIN
tbdStatus ON tbdOrderItem.fldWebStatus = tbdStatus.fldID
WHERE tbdOrderItem.fldOrder = '<orderID>'
ORDER BY tbdOrderItem.fldItemCode |
<orderID> wordt vervangen door ID order.
Wanneer ik deze query run krijg ik netjes alle artikelen terug. Indien er dubbele artikelen zijn die verder dezelfde gegevens hebben (=Status ed.) staan deze artikelen ook maar 1 keer in de results. Indien bv. de status anders is krijg ik het artikel 2 keer.
Nu wil ik graag weten of het mogelijk is om, indien er een DISTINCT gedaan wordt, of ik enkele velden dan bij elkaar kan optellen. Een voorbeeld hiervan is fldAmount. Nu krijg ik namelijk maar 1 keer het artikel te zien, terwijl de klant het artikel misschien 2 keer gekocht heeft. Kan ik het fldAmount veld dan de beide records op laten tellen, zodat ik 2 keer het fldAmount te zien krijg???
Ik kan op zich die DISTINCT wel weghalen en dan in mijn eigen code op dubbele zoeken, maar dit is misschien wel een stuk sneller?!?
Ik kon hier niets van gevonden krijgen, maar misschien zoek ik met de verkeerde zoektermen.
edit:
de applicatie waarin ik dit maak is VB6.
de applicatie waarin ik dit maak is VB6.
[ Voor 3% gewijzigd door DukeMan op 13-01-2004 22:37 ]