Har tre tabeller search1, pricecategory och rates. <code> Oj tack, vad många varibler det blev. Nej den returnerar olika beroende på vilken valuta som skrivs in. Men det är ju två olika valutor att tänka på. Först och främst den du vill ha ditt resultat i, t ex SEK om du vill veta min och max pris i SEK. Den andra valutan refererar till det min-pris du skickar, som alla rader som returneras måste vara mer än. Det min-priset vill du (väl?) kunna ange i en annan valuta. Nej, det skall vara samma samma valuta i min och max som i maxpris. Ja, vips så verkade det funka igen.Maxpris i aktuell valuta?
Det funkar nu att lista alla objekt i search1 och få min och max pris för objektet i vald valuta.
Priserna kan sättas i valfri valuta för varje objekt.
Nu till frågan:
Om jag vill även vill sätta en "limit" så får jag problem.
Låt säga att jag bara vill lista alla objekt där "min(pricew)" är låt säga 100 USD.
Hur gör jag då?
Har testat med HAVING och lite annat men jag får inte till det.
[search1]
id | city | province
1 | Lund | Skåne
2 | New York | NY
---------------------
[pricecategory]
sid | currency | pricew
1 | SEK | 1500
1 | SEK | 2000
1 | SEK | 2500
2 | EUR | 70
---------------------
[rates]
currencyF | currencyT | rate
SEK | SEK | 1
SEK | EUR | 0.11
SEK | USD | 0.13
EUR | SEK | 9
EUR | EUR | 1
--------------------
<code>SELECT s.id,s.province,s.city,
min(p.pricew)*r.rate,
max(p.pricew)*r.rate
FROM search1 AS s
INNER JOIN pricecategory AS p ON s.id=p.shid
INNER JOIN rates AS r ON r.currencyF=p.currency
WHERE r.currencyT = @curr
GROUP BY s.id,s.province,s.city,r.rate</code>Sv: Maxpris i aktuell valuta?
SELECT s.id,s.province,s.city,
min(p.pricew)*r.rate,
max(p.pricew)*r.rate
FROM search1 AS s
INNER JOIN pricecategory AS p ON s.id=p.sid
INNER JOIN rates AS r ON r.currencyF=p.currency
WHERE r.currencyT = @curr
GROUP BY s.id,s.province,s.city,r.rate
HAVING min(p.pricew)*r.rate > (SELECT @minlevel / rate FROM rates WHERE currencyF = @curr AND currencyT = @mincurrency)
</code>Sv:Maxpris i aktuell valuta?
Jag hade tänkt att det bara skulle vara två.
@curr, @maxprice
Altså valuta och max pris.
Detta verkar funka:
<code>...
HAVING min(p.pricew)*r.rate < (SELECT @maxprice/rate FROM rates WHERE currencyF=p.currency AND currencyT = @curr)</code>
Hur tänkte du?Sv: Maxpris i aktuell valuta?
Vad sjutton kan det vara?
Jag har sett till att valutan stämmer i tabellen 'rates'Sv: Maxpris i aktuell valuta?
Min sql-sats returnerar min- och maxpris räknat i den valuta som anges i @curr, för alla rader där min-pris räknat i valutan som anges av @mincurrency är mer än @minlevel av valutan @mincurrency.Sv:Maxpris i aktuell valuta?
Men jag ser att den ändå returnerar olika beroende på valuta.Sv: Maxpris i aktuell valuta?
Mysko. Tack för din hjälp, det var värdefullt!