Mysql SQL-带回包含2个特定项目的销售交易记录和/或

Mysql SQL-带回包含2个特定项目的销售交易记录和/或,mysql,sql,Mysql,Sql,我想写一段SQL代码,它将返回所有销售交易编号,其中包含我输入的两个特定项目。我就是拿不出正确的零件 SELECT * FROM [mastertable] TSE WHERE TSE.Date BETWEEN '20160101' AND '20160501' AND TSE.[Store No_] = '####' AND TSE.[Item No_] = '133033' AND TSE.[Item No_] = '144086` 有什么建议吗?试试看 SELECT * FROM [ma

我想写一段SQL代码,它将返回所有销售交易编号,其中包含我输入的两个特定项目。我就是拿不出正确的零件

SELECT *
FROM [mastertable] TSE
WHERE TSE.Date BETWEEN '20160101' AND '20160501'
AND TSE.[Store No_] = '####'
AND TSE.[Item No_] = '133033'
AND TSE.[Item No_] = '144086`
有什么建议吗?

试试看

SELECT *
FROM [mastertable] TSE
WHERE TSE.Date BETWEEN '20160101' AND '20160501'
AND TSE.[Store No_] = '####'
AND (TSE.[Item No_] = '133033'
OR TSE.[Item No_] = '144086`)
您的代码不起作用的原因是item no需要同时是113033和144086,您希望它是这两个中的任何一个。您还可以将其更新为以下内容:

AND TSE.[Item No_] IN ('133033','144086')
尽管这将以同样的方式进行优化

阅读你提到你的物品编号的回复时,应该包含这两个编号中的任何一个,这就是你想要的吗

SELECT *
FROM [mastertable] TSE
WHERE TSE.Date BETWEEN '20160101' AND '20160501'
AND TSE.[Store No_] = '####'
AND TSE.[Item No_] LIKE '%133033%'
and TSE.[Item No_] LIKE '%144086%')

请试试这个。它将完美地工作

SELECT 
    *
FROM 
    [mastertable] TSE
WHERE 
    TSE.Date BETWEEN '20160101' AND '20160501'
    AND TSE.[Store No_] = '####'
    AND TSE.[Item No_] IN ('133033','144086') 

嗨,里奇,谢谢你的回复。然而,这仍然没有给我期望的结果。我希望查询只带回销售中包含这两个项目的任何销售交易记录编号(收据编号)。这有意义吗?如果您使用[mastertable]模式和数据示例更新原始查询,我可以看一下。恐怕没有这个我就瞎飞了。我刚刚更新了我的答案,这就是你要找的吗?嗨,普拉文,谢谢你的回复。这并不能回答我的问题,因为对于不同的商店,某些交易编号是相同的。3家商店可能有交易编号63。我想如果我可以得到任何交易编号与这两个项目在它。由于您上面提供的代码返回了这两个项目的交易编号。我不清楚您的确切意思。