鑑於這些表:查找具有相同的確切關係,所有的行,另一個表中提供
表:測試
列:
- testID INT PK
- 名稱爲nvarchar (128)UNIQUE NOT NULL
表:[試驗輸入]
列
- inputsTableName爲nvarchar(128)PK UNIQUE
- testID INT PK FK
臨時表:## TestSearchParams
列:
- inputsTableName爲nvarchar(128)UNIQUE NOT NULL
我需要找到一個在試驗輸入項測試與精確匹配的所有條目在## TestSearchParams inputsTableNames ;得到的測試關係必須與## TestSearchParams中列出的完全一樣。
本質上,我只用給定的關係找到測試,不多也不少。我使用LIKE和通配符匹配名稱,但是這是一個我認爲可以在覈心邏輯完成匹配後解決的旁註。
這是我當前的查詢:
Select *
From Tests As B
Where B.testID In (
Select ti
From (
Select (
Select Count(inputsTableName)
From [Test-Inputs]
Where [Test-Inputs].testID = B.testID
) - Count(Distinct i1) As delta,
ti
From (
Select [Test-Inputs].inputsTableName As i1,
[Test-Inputs].testID As ti
From ##TableSearchParams
Join [Test-Inputs]
On [Test-Inputs].inputsTableName Like ##TableSearchParams.inputsTableName
And B.testID = [Test-Inputs].testID
) As A
Group By ti
) As D
Where D.delta = 0
);
目前的問題是,他似乎與匹配任何條目的## TableSearchParams檢索測試。在此之前,我嘗試了其他幾個查詢,以獲得不同程度的成功。我有查找測試匹配任何參數,所有的參數,並沒有任何參數工作查詢 - 我只是不能讓這個查詢工作。
下面是一些示例表值:
測試
- 1,測試1
- 2,的Test2
- 3,Test3的
[試驗輸入]
- 表1,1
- 表2,2
- 表1,3
- 表2,3個
TestSearchParams
- 表1
- 表2
個
給定的值應該只返回(3,Test3的)
編輯您的問題,並提供樣本數據和所需的結果。 –
好的例子應該發佈 – DeceitfulEcho
這裏是一個很好的開始。 http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –