간단한 쿼리가 있지만 필터링 할 필요가있는 여러 레코드가 있습니다. 나는 와일드 카드와 같은 문장을 사용하고있다. 더 나은 방법이 있나요? 내가 참조 할 수있는 udf 테이블을 만들 수 있습니까? 방법? 만약 내가 할 수 있다면. 감사합니다 :)유사 SQL 문 SQL Server 2008R2
SELECT a.SalesOrderNo ,
a.ShipExpireDate ,
a.CustomerNo ,
b.ItemCode ,
b.LineKey ,
b.QuantityOrdered ,
b.QuantityShipped ,
b.ItemCodeDesc ,
b.ExplodedKitItem
FROM dbo.SO_SalesOrderHeader a
LEFT JOIN dbo.SO_SalesOrderDetail b
ON a.SalesOrderNo = b.SalesOrderNo
WHERE b.ItemType = '1'
AND b.ItemCodeDesc NOT LIKE '%Cert%'
AND b.ItemCodeDesc NOT LIKE '%Fee%'
AND b.ItemCodeDesc NOT LIKE '%Tag%'
AND b.ItemCode NOT LIKE 'GF%'
AND b.ItemCode NOT LIKE 'PXDIALPREP'
AND b.ItemCode NOT LIKE '/C%'
AND a.ShipExpireDate = CONVERT(DATE, GETDATE(), 101)
별칭이 'a'와'b '인 이유를 설명 할 수 있습니까? 'h' ('header')와'd' ('detail')가 10,000,000 % 더 의미가 없습니까? –
또한 스타일 번호가있는 DATE로 변환하는 것은 의미가 없습니다. 오늘'ShipExpireDate' 값이 언제든지 만료되도록하려면'CONVERT (DATE, ShipExpireDate) = CONVERT (DATE, GETDATE()) '를 사용하십시오. 일반적으로 열에 'CONVERT'를 적용하는 것은 현명하지 않지만 여전히 유익한 경우입니다 (즉, 해당 열에 색인이있는 경우 해당 열을 계속 사용함). –
예 h와 d가 훨씬 더 의미가 있습니다. 나는 지금부터 그것을 사용할 것이다. – datacrunch