【发布时间】:2016-08-24 15:42:01
【问题描述】:
所以我不确定我把这个 Access SQL 查询搞砸了多少,但它相当复杂。
场景如下:有三个表。一种称为“PriceMatrix”,一种称为“PreApprovedPricing”,最后一种称为“Request”。已批准的定价包含按州列出的“已批准”价格列表,“价格矩阵”包含从另一个来源生成的价格列表,请求是所有这些都指向的父记录(也包含州)。我正在尝试编写一个查询来比较每个表中的价格,如果预先批准的价格小于价格矩阵中的价格,它会替换字段中的值,但如果大于,则保留原价矩阵价格。我尝试使用 switch 语句来查看给定的状态。
这是我的查询:
SELECT TOP 1 [ApprovedPrice] from [PreApprovedPricing] AS [1stMonthApproved] WHERE [ApprovedPrice] >= [PriceMatrix].[1stMonth]
ORDER BY [ApprovedPrice] ASC,
SWITCH( Request.[state] = 'CT' , [1stMonthApproved], Request.[state] = 'MA' , [1stMonthApproved], 1=1 , [PriceMatrix].[1stMonth]) AS 1stMonth,
FROM PriceMatrix LEFT JOIN Request ON PriceMatrix.RequestID = Request.RequestID;
我不断收到语法错误,但我似乎无法深入了解问题的根源。所以任何输入都会很棒,因为我还在学习 SQL
【问题讨论】: