SQL Server Management Studio 2005MS SQL Server에서 파생 테이블을 사용하여 필터링하는 방법은 무엇입니까?
설명, 국가, 브랜드 이름 및 확장 방법 등의 다양한 범주를 검색 할 수있는 쿼리를 작성했습니다. 사용자는 원하는만큼의 필터에 대한 데이터를 입력 할 수 있으며 결과는 입력 한 내용을 기반으로합니다.
다음은이 쿼리의 작동 버전입니다. 그러나 이것은 SSMS가 내가 전에 쓴 원래 쿼리를 다시 포맷 한 방법입니다. 내가 전에했던 모든 기억 어떤에서
SELECT DISTINCT masterCorporateGtin.SupplierNo, masterCorporateGtin.GTIN, masterCorporateGtin.Description, masterCorporateGtin.Commodity, masterCorporateGtin.Variety, masterCorporateGtin.CoO, masterCorporateGtin.PackSize, masterCorporateGtin.BrandName, masterCorporateGtin.GrowMethod, masterCorporateGtin.Grade
FROM GTINs AS masterCorporateGtin INNER JOIN
(SELECT DISTINCT SupplierNo, GTIN, Description, CoO, PackSize, BrandName, GrowMethod, Grade
FROM GTINs AS masterCorporateGtin
WHERE (Description LIKE '%' + @productDescription + '%') AND (BrandName LIKE '%' + @brandName + '%') AND
(GrowMethod LIKE '%' + @growmethod + '%') AND (CoO = @countryoforigin) OR
(Description LIKE '%' + @productDescription + '%') AND (BrandName LIKE '%' + @brandName + '%') AND (CoO = @countryoforigin) AND
(@growmethod IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (BrandName LIKE '%' + @brandName + '%') AND
(GrowMethod LIKE '%' + @growmethod + '%') AND (@countryoforigin IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (BrandName LIKE '%' + @brandName + '%') AND (@growmethod IS NULL) AND
(@countryoforigin IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (GrowMethod LIKE '%' + @growmethod + '%') AND (CoO = @countryoforigin) AND
(@brandName IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (CoO = @countryoforigin) AND (@growmethod IS NULL) AND
(@brandName IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (GrowMethod LIKE '%' + @growmethod + '%') AND (@countryoforigin IS NULL) AND
(@brandName IS NULL) OR
(Description LIKE '%' + @productDescription + '%') AND (@growmethod IS NULL) AND (@countryoforigin IS NULL) AND
(@brandName IS NULL) OR
(BrandName LIKE '%' + @brandName + '%') AND (GrowMethod LIKE '%' + @growmethod + '%') AND (CoO = @countryoforigin) AND
(@productDescription IS NULL) OR
(BrandName LIKE '%' + @brandName + '%') AND (CoO = @countryoforigin) AND (@growmethod IS NULL) AND
(@productDescription IS NULL) OR
(BrandName LIKE '%' + @brandName + '%') AND (GrowMethod LIKE '%' + @growmethod + '%') AND (@countryoforigin IS NULL) AND
(@productDescription IS NULL) OR
(BrandName LIKE '%' + @brandName + '%') AND (@growmethod IS NULL) AND (@countryoforigin IS NULL) AND
(@productDescription IS NULL) OR
(GrowMethod LIKE '%' + @growmethod + '%') AND (CoO = @countryoforigin) AND (@brandName IS NULL) AND
(@productDescription IS NULL) OR
(GrowMethod LIKE '%' + @growmethod + '%') AND (@countryoforigin IS NULL) AND (@brandName IS NULL) AND
(@productDescription IS NULL) OR
(CoO = @countryoforigin) AND (@growmethod IS NULL) AND (@brandName IS NULL) AND (@productDescription IS NULL) OR
(@growmethod IS NULL) AND (@countryoforigin IS NULL) AND (@brandName IS NULL) AND (@productDescription IS NULL))
AS productFilter ON masterCorporateGtin.Description = productFilter.Description AND masterCorporateGtin.BrandName = productFilter.BrandName AND
masterCorporateGtin.GrowMethod = productFilter.GrowMethod AND masterCorporateGtin.CoO = productFilter.CoO
아래이 비슷한했다 : 나는 그래서이 필터에 두 개의 열을 추가하기 전에 시도하고 내가 쓴 방법을 알아낼 필요가있다. 나는 WHERE 절에 하나씩 문장을 추가하여 계속 작동하는지 확인했다. 나는 이것을 다시 시도했지만 효과가 없었다. 나는 어떤 통찰력을 주셔서 감사합니다. 고맙습니다.
SELECT DISTINCT masterCorporateGtin.SupplierNo, masterCorporateGtin.GTIN, masterCorporateGtin.Description, masterCorporateGtin.Commodity, masterCorporateGtin.Variety, masterCorporateGtin.CoO, masterCorporateGtin.PackSize, masterCorporateGtin.BrandName, masterCorporateGtin.GrowMethod, masterCorporateGtin.Grade
FROM GTINs AS masterCorporateGtin INNER JOIN
(SELECT DISTINCT SupplierNo, GTIN, Description, Commodity, PackSize, BrandName, GrowMethod, Grade
FROM GTINs AS masterCorporateGtin
WHERE (Description LIKE '%' + @productDescription + '%') OR
(@productDescription IS NULL)) AS searchFilter ON masterCorporateGtin.Description = searchFilter.Description
감사합니다. 이것은 올바른 방향으로 나를 인도하는 데 도움이되었습니다. 그것은 괄호와 그룹핑에 관한 많은 문제였습니다. 그러나 내가 그들을 재편성 한 후에도 SSMS는 이전에했던 것처럼 자신 만의 형식으로 다시 코딩하지 않았습니다. –