可能是一个措辞严厉的问题,所以道歉。
我有3张桌子要加入。
我创建了一个SQLFiddle here
我想要的是将MAXLINEDISCOUNT
表中的linkloads
与price_escalation_bands
表中允许的折扣进行比较。
因此,在数据中,maxlinediscount为40必须match
price_escalation_bands
表格中customer_band
相同的下一个最高折扣。
所以我希望结果匹配第1行,其中它是铜牌,折扣是45.如果我MAXLINEDISCOUNT
大于45,那么转到下一个最高点,在这种情况下可能是50。
匹配时,返回fk_salesman_userid
字段并将其与users表中的用户名相匹配。
显然,所有这些数据都是动态的,因此需要查看下一个最高的数据......
目前,它返回为空白,所以不要认为我的语法非常正确。
我的查询是:
select price_authorized,load_number,maxlinediscount,customer_band,[price_escalation_bands].fk_salesman_userid,Users.firstname firstname,totalcost,period,creditlimit,currentbalance,customername,totalcubes,treatedcubes,normalcubes,pricingissue from #linkloads
left outer JOIN [price_escalation_bands] on [price_escalation_bands].band=#linkloads.customer_band
AND price_escalation_bands.discount = (
SELECT top 1 [price_escalation_bands].[discount]
FROM [price_escalation_bands]
WHERE [price_escalation_bands].band=#linkloads.customer_band
AND [price_escalation_bands].[discount]<=#linkloads.maxlinediscount
ORDER BY [price_escalation_bands].[discount]
)
left outer join Users
on Users.userid=[price_escalation_bands].fk_salesman_userid
帮助,一如既往地赞赏。
答案 0 :(得分:1)
这列出了price_escalation_bands
中匹配限制的所有linkloads
个条目:
select u.username
, peb.band
, peb.discount
, ll.maxlinediscount
from price_escalation_bands peb
join Users u
on peb.fk_salesman_userid = u.UserID
join linkloads ll
on ll.customer_band = peb.band
where ll.maxlinediscount < peb.discount