我有2个表。SQL在MAX上加入表和条件
制造商
- idManufacturer
券
idCoupon
idManufacturer
discountPercent
COUPONCODE
startRange
endRange
我需要让所有的制造商与最大的 “discountPercent” 优惠券一起,如果有任何可用的制造商。每个制造商应该只有一张优惠券。
这是SQL我有,它的工作原理,除了在特定情况下(见下文):
DECLARE @maxdiscount TABLE
(
idmanufacturer INT
, discperc INT
)
INSERT INTO
@maxdiscount
SELECT
p.idmanufacturer
, max(discperc)
FROM
cp_manufacturers p
LEFT OUTER JOIN coupons c ON p.idmanufacturer = c.idmanufacturer
GROUP BY
p.idmanufacturer
SELECT
m.idmanufacturer
, m.discperc
, couponcode
FROM
@maxdiscount m
LEFT OUTER JOIN coupons c ON c.idmanufacturer = m.idmanufacturer AND c.discperc = m.discperc
问题是,当有两个优惠券与同discountPercent的制造商,然后2张优惠券返回给该制造商。在这种情况下,我只想用较大的开始/结束范围来提取优惠券。
我被困在这部分,任何帮助将不胜感激。
谢谢。
其中DATABSE,SQL服务器? –
请删除/修改:每个制造商应该只有一张优惠券。 – Beth
现在,这是什么{StartRange,EndRange}?用于休闲目的的varchar字段? – wildplasser