У меня простой запрос, но у меня есть несколько записей, которые нужно отфильтровать. Я использую подобное заявление с дикими картами. Есть ли лучший способ сделать это, а затем выписать каждый из них? Могу ли я создать 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