У меня есть ниже код, который возвращает результат, как показано ниже (обратите внимание на порядок метод используется так, что можно сортировать данные)Использование Distinct Count в/с подзапрос
Week_Variance_Range Returns_Due ORDERMETHOD
Thisweek 11 05
-1 11 02
-2 12 03
-3 5 04
Теперь это приносит через все данные, и я только что обнаружил, что есть дублированные идентификаторы возврата (RtnId
), но мой анализ требует различных значений.
Итак, для This week
можно сказать, что было 11 возвратов. 2 может исходить из того же возвратного Id и в результате рисунок на этой неделе должен быть 10, а не 11.
Пожалуйста, смотрите код ниже:
SELECT
Week_Variance_Range,
COUNT(*) AS Returns_Due,
CASE
WHEN t.Week_Variance_Range = 'Created This Week ' THEN '01'
WHEN t.Week_Variance_Range = '-1' THEN '02'
WHEN t.Week_Variance_Range = '-2' THEN'03'
WHEN t.Week_Variance_Range = '-3' THEN '04'
WHEN t.Week_Variance_Range = '-4' THEN '05'
WHEN t.Week_Variance_Range = '-5' THEN '06'
WHEN t.Week_Variance_Range = '-9 to - 6 ' THEN '07'
WHEN t.Week_Variance_Range = '-19 to - 10 ' THEN '08'
WHEN t.Week_Variance_Range = '-39 to - 20 ' THEN '09'
WHEN t.Week_Variance_Range = '-59 to - 40 ' THEN '10'
WHEN t.Week_Variance_Range = '-79 to - 60 ' THEN '11'
WHEN t.Week_Variance_Range = '-99 to - 80 ' THEN '12'
WHEN t.Week_Variance_Range = '-500 to - 100 ' THEN '13'
END AS ORDERMETHOD
FROM (
SELECT
CASE
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 500 AND - 100 THEN '-500 to - 100 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 99 AND - 80 THEN '-99 to - 80 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 79 AND - 60 THEN '-79 to - 60 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 59 AND - 40 THEN '-59 to - 40 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 39 AND - 20 THEN '-39 to - 20 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 19 AND - 10 THEN '-19 to - 10 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 BETWEEN - 9 AND - 6 THEN '-9 to - 6 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = - 5 THEN '-5 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = - 4 THEN '-4 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = - 3 THEN '-3 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = - 2 THEN '-2 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = - 1 THEN '-1 '
WHEN abs(DATEDIFF(WEEK, RtnDt, GETDATE())) * - 1 = 0 THEN 'Created This Week '
END AS Week_Variance_Range
FROM dbo.vw_AN_Admin_VendorReturns
WHERE (Complete <> 'X')
) AS t
GROUP BY Week_Variance_Range
ORDER BY ORDERMETHOD
Рассмотрите возможность размещения текста вашего дела в таблице и перехода к нему - столбец для текста. Стол должен будет присоединиться к 6,7,8,9 всего к одному и тому же caseText. – Paparazzi