我有两个表,一个叫做CarTypes,另一个叫做Hourly Rates。
CarType具有以下属性:
Id,
CarTypes,
Rates
HourlyID related to HourlyRates based on HourlyId-ID relationship.
Id is an AutoNumber
CarTypes are Sedan,
Sports Utility,
Stretch Limo 6 Passengers,
Stretch Limo 8 passengers
Stretch Limo 10 Passengers
Stretch Limo 12 Passengers
每种车型都有自己的价格。
然后表HourlyRates具有以下属性: ID autoNumber, 每小时(最小时数为3)最大值为13及以上
我们的任务是将每个购物车类型的指定票价乘以用户选择的小时数,确定10%的折扣金额,确定(7%税)的税额,确定(20%)的小费或小费金额。 最后,那么,从票价中减去折扣,增加税额,添加提示金额以产生总金额。
到目前为止,我的计算仅显示轿车类型,轿车和运动型多功能车的所有价值(票价,折扣,小费,总数)。
有人可以告诉我我做错了吗?
提前致谢:
SELECT DISTINCT c.carTypes, h.hourly, h.hourly * IIf([CarTypes] = 'Sedan', 55,
IIf([CarTypes] = 'Stretch Limo : 6 Passenger)', 75,
IIf([CarTypes] = 'Stretch Limo : 8 Passenger)', 90,
IIf([CarTypes] = 'Stretch Limo : 10 Passenger)', 95,
IIf([CarTypes] = 'Stretch Limo : 12 Passenger)', 110,
IIf([CarTypes] = 'SportUtilityVehicle)', 110)))))) AS Fare, Fare*10/100 AS Discount, Fare-Discount AS NewFare, NewFare* 7/100 AS Tax, NewFare* 20/100 AS Tip, NewFare+Tax+TIP AS Total
FROM HourlyRates AS h INNER JOIN carType AS c ON h.ID= c.hourlyID;
答案 0 :(得分:2)
除了Sedan之外,您在每个)
的名称中都有额外的CarType
,因此它们永远不会在嵌套的IIF()
条件中捕获。
尝试:
SELECT DISTINCT c.carTypes, h.hourly, h.hourly * IIf([CarTypes] = 'Sedan', 55,
IIf([CarTypes] = 'Stretch Limo : 6 Passenger', 75,
IIf([CarTypes] = 'Stretch Limo : 8 Passenger', 90,
IIf([CarTypes] = 'Stretch Limo : 10 Passenger', 95,
IIf([CarTypes] = 'Stretch Limo : 12 Passenger', 110,
IIf([CarTypes] = 'SportUtilityVehicle', 110)))))) AS Fare, Fare*10/100 AS Discount, Fare-Discount AS NewFare, NewFare* 7/100 AS Tax, NewFare* 20/100 AS Tip, NewFare+Tax+TIP AS Total
FROM HourlyRates AS h INNER JOIN carType AS c ON h.ID= c.hourlyID;
我认为SWITCH()
功能更容易理解:
SELECT DISTINCT c.carTypes, h.hourly, h.hourly *
SWITCH([CarTypes] = 'Sedan', 55
,[CarTypes] = 'Stretch Limo : 6 Passenger', 75
,[CarTypes] = 'Stretch Limo : 8 Passenger', 90
,[CarTypes] = 'Stretch Limo : 10 Passenger', 95
,[CarTypes] = 'Stretch Limo : 12 Passenger', 110
,[CarTypes] = 'SportUtilityVehicle', 110
) AS Fare
, Fare*10/100 AS Discount
, Fare-Discount AS NewFare
, NewFare* 7/100 AS Tax
, NewFare* 20/100 AS Tip
, NewFare+Tax+TIP AS Total
FROM HourlyRates AS h INNER JOIN carType AS c ON h.ID= c.hourlyID;