【发布时间】:2022-01-23 19:13:16
【问题描述】:
我在下面的报告构建器中犯了一个逻辑错误,有 2 个连接到@Income 参数的 Sequel 查询,但是在报告中我得到了这个结果,这没有意义,因为它只显示相同的收入。
我认为这是因为我无法选择多种收入。当我尝试选择多个值时出现此错误。
这个查询可以执行,但效率不高。我也遇到了同样的年龄查询,我无法选择多个年龄,如您在错误图片中看到的那样。
(SELECT MIN(YearlyIncome) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as MinIncome,
(SELECT MAX(YearlyIncome) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as MaxIncome
这是我的存储过程 (DataSet1)
CREATE PROC GET_TargetCustomer (
@Age INT,
@Income int,
@Buyer int
) as
BEGIN
SELECT DISTINCT
(SELECT AVG(Age) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) AS AVGAge,
(SELECT SUM(BikeBuyer) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as TotalBuyers,
(SELECT MAX(Age) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) AS OldestCustomer,
(SELECT AVG(YearlyIncome) FROM vTargetCustomer WHERE(@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as AVGIncome,
(SELECT MIN(Age) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) AS YoungestCustomer,
(SELECT MIN(YearlyIncome) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as MinIncome,
(SELECT MAX(YearlyIncome) FROM vTargetCustomer WHERE (@Age = Age) AND (@Income = YearlyIncome) AND (@Buyer = BikeBuyer)) as MaxIncome
END
GO
我已经为每个参数创建了数据集
年龄参数的AgeDataSet
SELECT DISTINCT Age FROM vTargetCustomer ORDER BY Age ASC
IncomeDS 收入参数
SELECT DISTINCT YearlyIncome FROM vTargetCustomer ORDER BY YearlyIncome ASC
买方参数的BuyerDS
SELECT DISTINCT BikeBuyer FROM vTargetCustomer ORDER BY BikeBuyer ASC
谁能帮我解决这个问题?
【问题讨论】: