Sql 如何按2列搜索多个数据库条目

Sql 如何按2列搜索多个数据库条目,sql,sql-server,database,Sql,Sql Server,Database,嗨,我有一个数据库,一行一行地存储机票详细信息。例如,如果有人进来购买一项服务,带着一张优惠券,他们购买了一张礼品卡,它会将交易分为3个独立的表格条目。。。例如,如果我用下面的查询搜索票号“m123”,我会得到下面的结果 Select * FROM TicketsDetails WHERE (sTicket_Number = 'M123') Ticket Description Amount M123 BOGO 15 M123 S

嗨,我有一个数据库,一行一行地存储机票详细信息。例如,如果有人进来购买一项服务,带着一张优惠券,他们购买了一张礼品卡,它会将交易分为3个独立的表格条目。。。例如,如果我用下面的查询搜索票号“m123”,我会得到下面的结果

Select *
FROM            TicketsDetails
WHERE        (sTicket_Number = 'M123')

Ticket  Description Amount
M123    BOGO        15
M123    Service 1   -15
M123    GC Service 1    15
M123    $5 OFF      -5
当前查询和输出:

SELECT        t1.sTicket_Number, t1.sDescription, t1.sUserName, t2.sDescription AS Second_description
FROM            TicketsDetails AS t1 INNER JOIN
                         TicketsDetails AS t2 ON t1.sTicket_Number = t2.sTicket_Number
WHERE        (t1.sDescription = '$5 OFF') AND (t2.sDescription = 'BOGO')


M100304 $5 OFF  Kenny   BOGO
M100304 $5 OFF  Kenny   BOGO
M100542 $5 OFF  Kenny   BOGO
M103706 $5 OFF  Kenny   BOGO
M132464 $5 OFF  Dante   BOGO
M132464 $5 OFF  Dante   BOGO
M132501 $5 OFF  Dante   BOGO
M132501 $5 OFF  Dante   BOGO
M132528 $5 OFF  Dante   BOGO
M133892 $5 OFF  Raynon  BOGO
M133892 $5 OFF  Raynon  BOGO
M134067 $5 OFF  Raynon  BOGO
M134067 $5 OFF  Raynon  BOGO
我想做的是返回任何描述为“bogo”和“5美元折扣”的车票号码。这是否可能,因为它们是具有相同票号的单独条目

SELECT * 
FROM TicketDetails 
WHERE sTicket_Number = 'M123' AND 
    (Description ='BOGO' OR Description = '$5 OFF')
----编辑---

根据您评论中的澄清,您可能希望:

SELECT * 
FROM TicketDetails 
WHERE Description ='BOGO' OR Description = '$5 OFF'
----编辑---

根据您评论中的澄清,您可能希望:

SELECT * 
FROM TicketDetails 
WHERE Description ='BOGO' OR Description = '$5 OFF'
尝试类似的方法(逻辑似乎可行,但可能有输入错误,因为我没有在具有确切列名的表上尝试此方法):

内部联接应该创建每个描述组合,然后查找一个既有BOGO描述又有$5 OFF描述的行。

尝试类似的操作(逻辑似乎可行,但可能有输入错误,因为我没有在具有确切列名的表上尝试此操作):


内部联接应该创建描述的每个组合,然后查找同时包含BOGO描述和$5 OFF描述的行。

问题是每次投标的票号都会更改。。。我们的想法是找出是谁在出售我们的打折“博戈”票并接受50美元的折扣,这样我们就可以与员工交谈了。。。这意味着票号不会总是M123问题是每次投标时票号都会改变。。。我们的想法是找出是谁在出售我们的打折“博戈”票并接受50美元的折扣,这样我们就可以与员工交谈了。。。这意味着车票号码不会总是M123这很接近,如果尽可能接近,那就好了。但它会多次显示票号。。。有没有办法让它只显示一次?你是说它返回一行,车票号码列了两次?尝试
选择t1。票证
。我将更新答案。如清单中的
M124 M124 M125 M125
全部在单独的行中。离这里更近了。它只在某些票上出现。。。很奇怪。你能把这些行加到问题上吗?也就是说,包含M124和M125的行。这非常接近,如果它尽可能接近,就可以了。但它会多次显示票号。。。有没有办法让它只显示一次?你是说它返回一行,车票号码列了两次?尝试
选择t1。票证
。我将更新答案。如清单中的
M124 M124 M125 M125
全部在单独的行中。离这里更近了。它只在某些票上出现。。。很奇怪。你能把这些行加到问题上吗?即,包含M124和M125的行。