SELECT tblArticle.articlenumber, tblArticle.articleName, tblPrice.articlePrice,
tblPrice.articleCategoryNumber, tblArticle.articleUnit, tblCategory.CategoryName,
tblCategory.categoryNumber, tblDiscount.articleDiscount, tblSupplier.SupplierName,
CASE WHEN articleDiscount is null
THEN articlePrice ELSE articlePrice*(1-([articleDiscount]*0.01)) END
AS articlePriceWithDiscount
FROM tblArticle
INNER JOIN tblPrice ON tblArticle.articlenumber = tblPrice.articleNumber
INNER JOIN tblSupplier ON tblPrice.articleSupplierId = tblSupplier.SupplierId
LEFT OUTER JOIN tblDiscount ON tblPrice.articleCategoryNumber = tblDiscount.categoryNumber
AND tblPrice.articleSupplierId = tblDiscount.supplierId
LEFT OUTER JOIN tblCategory ON tblPrice.articleSupplierId = tblCategory.supplierId
AND tblPrice.articleCategoryNumber = tblCategory.categoryNumber
WHERE tblArticle.articleName = 'EKLK 3G1,5 R50' AND tblSupplier.supplierId IN (4, 3, 5, 1, 2)
ORDER BY articlePriceWithDiscount
till att börja med (när sql-frågan är fixad så den verkligen bara returnerar två poster), hade jag lagt till en markering på vilken post som är vilken, princip:
select bla, bla, bla, 'LowestPrice' as pricetype....
union all
select bla, bla, bla, 'HighestPrice' ....
Sedan kollar du bara i asp-koden vad fältet pricetype i recordsetet innehåller.
edit: eller har detta inte att göra med din tråd i SQL-forumet?
*snurrig*
Eftersom du sorterar på pris borde ju billigast komma överst och dyrast underst.
Släng in en räknare som räknar upp i loopen, position 1 är billigast och den sista är dyrast. För att se vilken som är sist, kan du jämföra med recordcount (om du öppnar recordsetet på ett sätt som ger dig den egenskapen).
(edit: om du ens behöver veta vilken som är sist då. det behöver du kanske inte? Då är det väl kakbit? :) )
i = 0
while not foo.eof
i = i+1
if i = 1 then
' detta är det lägsta priset, spara undan i en variabel
dLowestPrice = cdbl(foo("prisfältet"))
end if
...
wend
...