0

我有两张表,一张包含会员及其卡号,另一张表用于标识每个网点的卡号范围。我想知道会员的卡号属于哪个商店。

成员表

MemberID    Cardnumber    FirstName   LastName
1           123456123     John        Doe
2           123456245     Sarah       Smith

奥特莱斯表

OutletID    OutletName      StartCardNumber     EndCardNumber
1           Balmain Store   123456100           123456200
2           Sydney Store    123456201           123456300

我想不出一个脚本可以带回以下信息而无需先创建临时表。有没有更简单的方法?

CardNumber  FirstName LastName   OutletName
123456123   John      Doe        Balmain Store
123456245   Sarah     Smith      Sydney Store
4

1 回答 1

2

这很简单。除了等式之外,您还使用不等式加入范围。

SELECT
   M.CardNumber,
   M.FirstName,
   M.LastName,
   O.OutletName
FROM
   dbo.Members M
   INNER JOIN dbo.Outlets O
      ON M.CardNumber >= O.StartCardNumber
      AND M.CardNumber <= O.EndCardNumber

这与相同,但我想使用andM.CardNumber BETWEEN O.StartCardNumber AND O.EndCardNumber画出您的方案的包容性端点。并不总是合适的,因为最终值通常是独占的,但在这种情况下并非如此。>=<=BETWEEN<

立即在线尝试

于 2012-08-21T06:13:53.077 回答