webForumDet fria alternativet

sök större än i sql

16 svar · 1 183 visningar · startad av annasmurf

annasmurfMedlem sedan mars 2006237 inlägg
#1

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?

yohpopsMedlem sedan feb. 20011 198 inlägg
#2

Testa detta.

select room 
from roomprice 
where bedtype=3 and 
price>(select max(price) from roomprice where bedtype=2)
annasmurfMedlem sedan mars 2006237 inlägg
#3

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...

nitro2k01Medlem sedan aug. 20039 342 inlägg
#4

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.

annasmurfMedlem sedan mars 2006237 inlägg
#5

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

nitro2k01Medlem sedan aug. 20039 342 inlägg
#6

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
annasmurfMedlem sedan mars 2006237 inlägg
#7

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.

annasmurfMedlem sedan mars 2006237 inlägg
#8

någon som kan hjälpa mig????

Peter SMedlem sedan dec. 20025 483 inlägg
#9

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

annasmurfMedlem sedan mars 2006237 inlägg
#10

nä det funkar inte, som jag sa tidigare så fick jag inte fram något!

Peter SMedlem sedan dec. 20025 483 inlägg
#11

Som sagt:

Peter S skrev:

Visa vilket resultat du får med

select max(price) from roomprice where bedtype=3

och

select max(price) from roomprice where bedtype=2

annasmurfMedlem sedan mars 2006237 inlägg
#12

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

Peter SMedlem sedan dec. 20025 483 inlägg
#13

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)
annasmurfMedlem sedan mars 2006237 inlägg
#14

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

nitro2k01Medlem sedan aug. 20039 342 inlägg
#15

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
annasmurfMedlem sedan mars 2006237 inlägg
#16

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)
annasmurfMedlem sedan mars 2006237 inlägg
#17

tack

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)