我有一個名為 tblExclusions 的表。它有一個名為 ProductCode 的列,其中包含我想在另一個名為 tblSubscription 的表中排除的單詞,其中列 Product_Code。Product_Code 包含的字串可能包含我想使用 tblExclusions 資料排除的單詞。
tblExclusions 示例:
產品代碼(標題)
所有型號
線框
延期
tbl訂閱示例:
Product_Code(標題)
C233 與 AllModels
線框網格 H456
用 G789 擴展
D132、F345、G567
DB07
輸出應該是:ProductCode
D132、F345、G567
DB07
我嘗試了一些我認為可行的方法:
SELECT b.product_code
FROM
ttblExclusions a
LEFT JOIN tblSubscription b
ON b.product_code Not LIKE ("*" & a.ProductCode & "*")
它回傳了記錄,但它仍然包含帶有我想要排除的字串的行。有沒有辦法調整這個來做我需要的?
斯科特
uj5u.com熱心網友回復:
從上面的解釋看來,我們想從 tblSubscription 表中選擇 product_code 是不可用的表(ttblExclusions)。下面的查詢將達到目的:
SELECT
a.product_code
FROM
tblSubscription a
where
a.product_code not in (
select
distinct ProductCode
from
ttblExclusions
);
uj5u.com熱心網友回復:
我最終使用記錄集來回圈遍歷 tblExclusion 資料。然后使用 Instr 查看是否匹配。如果是這樣,我運行更新查詢來標記洗掉列。
Do While Not rs.EOF
strProdCode = rs("ProductCode")
DoCmd.RunSQL ("UPDATE tblSubscription SET tblSubscription.[Delete] = 'Yes' WHERE (((InStr([Product_Code],'" & strProdCode & "'))>0));")
rs.MoveNext
Loop
Then I just deleted the flagged records.
uj5u.com熱心網友回復:
可能最簡單的解決方案如下:
WITH tblExclusions AS (
SELECT 'AllModels' AS product_code
UNION
SELECT 'WireFrame'
UNION
SELECT 'Extension'
),
tblSubscription AS (
SELECT 'C233 with AllModels' AS product_code
UNION
SELECT 'WireFrame Grid H456'
UNION
SELECT 'Extension with G789'
UNION
SELECT 'D132, F345, G567'
UNION
SELECT 'DB07'
)
SELECT s.product_code
FROM tblExclusions e
RIGHT JOIN tblSubscription s ON s.product_code LIKE '%' e.product_code '%'
WHERE e.product_code IS NULL
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422056.html
標籤:
下一篇:計算得到前n%的一代
