我正在使用3张桌子。
以下是我使用的查询。
select Table1.OrderNumber as Ordernummer,
Table2.Productnumber as ArtikelNummer,
Table3.Productdescription as ArtikelOmschrijving,
Table2.Amount as Aantal,
Table2.SellingPrice as PrijsPerArtikel from Table1
INNER JOIN Table2 ON Table2.OrderKey = Table1.OrderKey
INNER JOIN Table3 ON Table3.ProductNumber = Table2.ProductNumber
where Table3.ProductDescription > any (select ProductDescription from table3 where ProductDescription like '%stock%') and
table1.OrderNumber in (
*ALotOfOrderNumbers*
)
对于此部分,如果该产品在说明中的某处有'stock'
字样,我会尝试选择订单中的每件商品。
Table3.ProductDescription > any (select ProductDescription from table3 where ProductDescription like '%stock%')
然而,这并不会返回我想要的结果。它还会从我输入的订单中返回订单,这些订单中没有任何产品的描述中包含单词stock。因为我对SQL很陌生,所以我觉得我在这里缺少一些基本的东西,但我无法理解它。
答案 0 :(得分:0)
如果该产品在说明中的某处有“stock”字样,我会尝试选择订单中的每件商品。
为什么
where Table3.ProductDescription > any
(select ProductDescription from table3 where ProductDescription like '%stock%')
然后而不是
where Table3.ProductDescription like '%stock%'
这已经是您正在寻找的答案了,还是在您想要的描述中不是真正具有“库存”的产品,而是您无法解释的其他内容?
(使用您的WHERE子句,您正在寻找字母表后面的所有产品,而不是第一个“库存”描述。即如果存在两个'库存'描述:'bstock'和'ystock',您将获得'ystock'和'xxx'和'zzz',但不是'bstock'和'abc',因为它们之前没有“库存”描述。)