我有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