hej!
kan någon hjälpa mig med följande:
jag söka priser i trippel-rum som är dyrare än dubbel!
typ
where bedtypekoulmn=3 priskloumn > bedtypekolumn=2 priskolumn
i samma tabell roomprice
någon som fattar jag menar?
16 svar · 1 183 visningar · startad av annasmurf
hej!
kan någon hjälpa mig med följande:
jag söka priser i trippel-rum som är dyrare än dubbel!
typ
where bedtypekoulmn=3 priskloumn > bedtypekolumn=2 priskolumn
i samma tabell roomprice
någon som fattar jag menar?
Testa detta.
select room
from roomprice
where bedtype=3 and
price>(select max(price) from roomprice where bedtype=2)
fick inte fram något med detta som du skev
select hotellId
from dbo.Hotellpriser
where bedtypeid=4 and
hotellPrice >(select max(hotellPrice) from dbo.Hotellpriser where bedtypeid=3)
men jag vet att det finns ett hotelrum som har högre pris på bedtype=4 än bedtypeid=3
så detta verkar inte funka...
Pröva att köra
select max(hotellPrice) from dbo.Hotellpriser where bedtypeid=3
samt
select max(hotellPrice) from dbo.Hotellpriser where bedtypeid=4
var för sig för att vara säker.
ja jag får fram ett max pris men jag vill ju få fram alla rum från hotellen där tre bäddars har ett högre pris än 2 bäddars
Poängen var att bekräfta manuellt att det faktiskt finns dubbelrum som är dyrare än trippelrum. Ska det verkligen stå 4 för dubbelrum f.ö.?
Pröva annars
SELECT dubbel.hotellPrice AS hotellPrice # <- Detta är värdet du faktiskt vill hämta ut
MAX(trippel.hotellPrice) AS trippelmax # <- Detta är maxvärdet för trippelrum och är bara en hjälpstruktur
FROM dbo.Hotellpriser trippel
LEFT JOIN dbo.Hotellpriser dubbel ON dubbel.hotellPrice > trippelmax
WHERE trippel.bedtypeid=3 # <- Id't för trippelrum
AND dubbel.bedtypeid=4 # <- Id't för dubbelrum
den säger så här An aggregate cannot appear in an ON clause unless it is in a subquery contained in a HAVING clause or select list, and the column being aggregated is an outer reference.
någon som kan hjälpa mig????
yohpops svar ser bra ut. Visa vilket resultat du får med
select max(price) from roomprice where bedtype=3
och
select max(price) from roomprice where bedtype=2
nä det funkar inte, som jag sa tidigare så fick jag inte fram något!
Som sagt:
Visa vilket resultat du får med
select max(price) from roomprice where bedtype=3
och
select max(price) from roomprice where bedtype=2
mitt svar är ju att jag vill får fram de hotell som har en tre-rummare som är dyrare än en två-rummare!!!! med detta får jag ju bara fram max pris på ett rum det dyraste rummet
Du vill ha fram alla 3-rummare som är dyrare än vilken 2-rummare som helst? Då
select room
from roomprice
where bedtype=3 and
price>(select min(price) from roomprice where bedtype=2)
ja nu börjar det närma sig rätt lösning, men jag vill bara ha med där priset är störreän jag får även med när priset är lika...även om jag bara har > i frågan
Låter som ett subtilt avrundingsfel. Pröva följande. (Lägger till ett öre på högersidan.)
select room
from roomprice
where bedtype=3 and
price>(select min(price) from roomprice where bedtype=2)+0.01
blir ingen skilland tyvärr!
select hotellId, bedtypeid, hotellPrice
from dbo.Hotellpriser
where periodStart >'2009-09-01'and bedtypeid=4 and
hotellPrice >((select min(hotellPrice) from dbo.Hotellpriser where bedtypeid=3)+0.01)
tack