Tôi có một truy vấn sử dụng WHEREmệnh đề và tôi tình cờ sử dụng chính xác WHEREmệnh đề đó trong nhiều truy vấn trên bảng này (et al).
Truy vấn là:
SELECT
DATENAME(DW, [AtDateTime]) AS [Day of Week]
,COUNT(*) AS [Number of Searches]
,CAST(CAST(COUNT(*) AS DECIMAL(10, 2))
/ COUNT(DISTINCT CONVERT(DATE, [AtDateTime])) AS DECIMAL(10, 2))
AS [Average Searches per Day]
,SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END)
AS [Number of Searches with no Results]
,CAST(CAST(SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END)
AS DECIMAL(10, 2)) / COUNT(*) AS DECIMAL(10, 4))
AS [Percent of Searches with no Results]
FROM [DB].[dbo].[SearchHistory]
WHERE
[CustomerNumber] <> '1234' AND [CustomerNumber] <> '5678'
GROUP BY DATENAME(DW, [AtDateTime]), DATEPART(DW, [AtDateTime])
ORDER BY DATEPART(DW, [AtDateTime])
Phần tôi muốn thay đổi là WHEREmệnh đề, thay vào đó cho phép tôi sử dụng bảng để nếu tôi phải thêm số khách hàng bị bỏ qua, tôi không phải cập nhật tất cả các truy vấn của mình. (Và có khá nhiều truy vấn có cùng WHEREmệnh đề này.)