create table hotelSupplier
(
prod_id int,
sku_id bigint,
activity_name nvarchar(20),
package nvarchar(20),
adult binary(1),
child binary(1),
validation_date date,
launch_date date,
city nvarchar(10),
est_units_per_day int
)
我必须编写一个查询来检索那些prod_id,包来自表,供应商根据城市,验证日期以及成人和儿童的结果给出结果。我试图解决它,但我被困在没有的情况下。作为供应商的成人和儿童案例没有。成人和儿童专栏。它需要首先检查是否为成人或儿童设置或取消设置特定的sku_id。然后必须将其与每天的估计单位进行比较,如果可用则必须打印。
alter procedure uspGetKlookDetails
@city nvarchar(10),
@valid_date date,
@no_of_adults int,
@no_of_child int,
@age int
AS
BEGIN
SELECT *
FROM hotelSupplier
WHERE city = @city
AND validation_date < @valid_date
AND est_units_per_day >= CASE
WHEN adult = 1 THEN @no_of_adults
WHEN child = 1 THEN @no_of_child
END
END
GO
答案 0 :(得分:0)
因为成人和儿童是二元的,所以他们只能是0或1,所以通过分组为ex。 prod_id这是你想要的东西之一,然后你使用sum()(如果你的sql平台允许你使用的这个未知的sql)你可以得到有多少成人和孩子:
select prod_id, sku_id, activity_name, package,
sum(adult) as nrofadults, sum(child) as nrofchildren,
validation_date, launch_date, city, est_units_per_day
from hotelSupplier
group by prod_id