如何创建一个新值我们的行数乘以另一个值

时间:2017-11-01 10:49:05

标签: sql

我想在CruisePrice乘客次数之外创建一个新值TotalPrice。我有以下不起作用:

SELECT PlaceResidency, BirthDate, LastName, FirstName
    , (SELECT count (*) AS "PassengerAmount" FROM PASSENGER)
    , PassengerAmount * CruisePrise AS TotalPrice
FROM PASSENGER, PERSON, CRUISE 
WHERE BirthDate >= 18
ORDER BY PlaceResidency, BirthDate, TotalPrice;

2 个答案:

答案 0 :(得分:1)

您应该声明一个变量来保存乘客数量,并在需要的地方使用它以避免在子查询中重新计算。

DECLARE @PassengersCount INT = (SELECT count (*)  FROM PASSENGER);

SELECT PlaceResidency, BirthDate, LastName, FirstName, @PassengersCount AS 
PassengerAmount, @PassengersCount * CruisePrise AS TotalPrice
FROM PERSON, CRUISE
WHERE BirthDate >= 18
ORDER BY PlaceResidency, BirthDate, TotalPrice;

答案 1 :(得分:0)

请尝试这个解决方案可能有效:

SELECT PlaceResidency, BirthDate, LastName, FirstName
    , (SELECT count (*)  FROM PASSENGER) AS PassengerAmount
    , ((SELECT count (*)  FROM PASSENGER) * CruisePrise )AS TotalPrice
FROM PASSENGER, PERSON, CRUISE 
WHERE BirthDate >= 18
ORDER BY PlaceResidency, BirthDate, TotalPrice;