2017-04-05 1 views
1

사용자가 SQL Server DB에서 쿼리 할 수 ​​있도록 간단한 UI를 만들었습니다. UI는 사람의 이름에 대한 하나의 입력 필드로 시작되었습니다. 이 필드의 입력은 데이터베이스의 3 개 필드를 검색하는 데 사용됩니다. 지금까지의 쿼리는 다음과 같습니다.이 T-SQL 쿼리에 추가 할 구문

SELECT [Id], [Url], [PersonName], [BusinessName], [DOB], [POB], [Text] 
FROM dbo.DataAggregate 
WHERE CONTAINS([PersonName], 'NEAR((john, doe), 2, FALSE)') 
OR CONTAINS([BusinessName], 'NEAR((john, doe), 2, FALSE)') 
OR CONTAINS([Text], 'NEAR((john, doe), 2, FALSE)') 

위의 내용은 사용자가 John Doe에 대해 쿼리 한 것으로 간주합니다. NEAR에 대한 요구 사항은 필드의 데이터에 대한 형식 불일치와 관련이 있지만이 질문과 관련이 없으며 단지 FYI입니다.

이제 사용자가 자신의 쿼리를 추가로 조정할 수 있도록 UI에 4 개의 입력 필드를 추가해야한다고했습니다. 이 필드는 이미 DB 레코드에 있습니다. 내 질문에 UI의 추가 필드를 사용할 때 위 쿼리에 어떻게 추가합니까? 간단히 여러 개의 AND 문을 OR 문에 추가하기 만하면됩니까?

날 당신이 나를 도울 수 있도록 예를 들어 보겠습니다 :

User Query: 
Person Name: John Doe 
DOB:   01/01/1900 
Address:  123 Main St 
POB:   USA 
Occupation: Worker 

이 어떻게 다른 4 개의 입력 필드에 대한 데이터를 포함하는 내 쿼리에 추가 할 수 ? 처음에는 채워지는 입력 필드와 그렇지 않은 입력 필드를 처리하기 위해 쿼리에 IF 문이 필요합니까?

다른 4 개 개의 입력 필드의 각 값은 텍스트 필드 자신의 필드에 검색 할 필요가 플러스 것 - 즉 년 - DOB가 DOB 필드와 텍스트 필드에 년 - 주소를 검색 할 필요가을 것 주소 필드와 텍스트 필드에서 검색해야합니다. 등

기본적으로 5 개의 섹션이 IF/AND/OR.

감사합니다. 당신이 매개 변수를 사용하는 경우

답변

0

당신이 비록 빠른 실시간 혼란스러워하는 것입니다이 트릭

Where 
((@input1 is null) or (somefield = @input1)) 
Or/And 
... 

라운드 채워지지 않은 입력을 얻을 수 있습니다, 그들은 다음 주 이상의 입력을 마련하겠습니다.

다른 옵션까지 조언을

Grid with Filter capability. 
Data dump for say Excel 
Building the query programatically, with parameters. 
+0

감사합니다 - 이제 더 이상 입력을 가정하자에 대한이 나를 던져 질 것이다. 나는 당신이 언급 한 다른 옵션들을 확실히 탐구 할 것입니다. – Stpete111

+0

또한 입력 (필수 사항)이 필수이고 어떤 것이 선택적인지 고려해야합니다. 이름을 입력해야하는 경우 다른 입력은 다르게 처리됩니다. 가장 어려운 경우이므로 모든 입력 사항이 선택 사항이라고 가정합니다. 또한 다른 분야도 세 곳의 다른 장소에서 점검됩니까? –

+0

@LaughingVergil 기술적으로 필수는 아니지만 사용자는 항상 이름 필드에 무엇인가를 입력해야합니다. 나머지 4 개는 항상 선택 사항입니다. 마지막 질문에 관해서, 다른 4 개의 입력 필드는 두 개의 서로 다른 위치, 즉 자신의 필드와 텍스트 필드에서 확인됩니다. – Stpete111