带回只有最低的价格,我有两个MSSQL表如下:SQL查询 - 加入两个表从表2
boat_data
boat_prices
船约船只数据的数据房子行。每艘船都有一个独特的编号(pricingRef) 船价为每艘船提供了一排排租赁价格,每艘船可以有任意数量的排。每行也有一个pricingRef值。在boat_prices表实例数据可能是:
pricingRef > pricingDescription > price
ASD1 > fullDay > 1500
ASD1 > perWeek > 9000
ASD1 > morning > 800
ASD2 > fullDay > 2000
ASD2 > perWeek > 12000
ASD2 > morning > 1100
我需要做的是从boat_data表带回的所有行,并把它加入boat_prices表带回只有最低的价格为每船。我写了下面的SQL语句。问题是它真的很笨重和混乱。我使用min(price)从boat_prices表中取回价格值,然后明确请求boat_data表中的每个字段,然后按boat_data表中的每个字段进行分组。
必须有一个更好的方法来实现这一点。道歉我是一名SQL新手。请帮忙!
select
min(price) as price,
boat_data.ID,
boat_data.boatRef,
boat_data.capacity,
boat_data.sleeps,
boat_data.fuelConsumption,
boat_data.yearBuilt,
boat_data.length,
boat_data.beam,
boat_data.engines,
boat_data.tender,
boat_data.boatName,
boat_data.cabins,
boat_data.speed,
boat_data.location,
boat_data.onSale,
boat_data.supplierID,
boat_data.boatClassID,
boat_data.pricingRef,
boat_data.crew,
boat_data.sportsEquipment
from boat_data
join boat_prices
on boat_data.pricingRef = boat_prices.pricingRef
group by
boat_data.ID,
boat_data.boatRef,
boat_data.capacity,
boat_data.sleeps,
boat_data.fuelConsumption,
boat_data.yearBuilt,
boat_data.length,
boat_data.beam,
boat_data.engines,
boat_data.tender,
boat_data.boatName,
boat_data.cabins,
boat_data.speed,
boat_data.location,
boat_data.onSale,
boat_data.supplierID,
boat_data.boatClassID,
boat_data.pricingRef,
boat_data.crew,
boat_data.sportsEquipment
order by price
哦,你的速度快,+++:在这种情况下d – mirkobrankovic
他将只得到价格在 “早晨” 事业他们是最低的,他说最低的 – mirkobrankovic
@mirkobrankovic:这就是杰森要求的:“*只带回每艘船的最低价格*”。 –