このケースを使用してデータを表示すると、where
とgroup by
と表示されます。サンプルは18/12/2017
です。グループでデータを表示する方法とSQL Serverのどこに?
SELECT
PROID,
MAX(COUNT_NUMBER) AS COUNT_NUMBER_OLD,
CONVERT(CHAR(10), DATETIME_INPUT, 101) AS PreDate
FROM
TABLE_A
WHERE
CONVERT(VARCHAR(2), DATETIME_INPUT, 108) BETWEEN '18' AND '23'
AND CONVERT(CHAR(10), DATETIME_INPUT, 103) = '18/12/2017'
GROUP BY
PROID, CONVERT(CHAR(10), DATETIME_INPUT, 101);
結果は次のとおりです。それは、通常の作業だが、私はどこ条件でデータを持っていない場合は、データを表示したい
PROID COUNT_NUMBER_OLD PreDate
-------------------------------------------
01 1063 12/18/2017
02 365 12/18/2017
03 845 12/18/2017
。 CONVERT(CHAR(10), DATETIME_INPUT, 103) = '17/12/2017'
:
PROID COUNT_NUMBER_OLD PreDate
------------------------------------------
01 0 12/17/2017
02 0 12/17/2017
03 0 12/17/2017
私は
(CASE
WHEN COUNT_NUMBER IS NULL
THEN 0
ELSE MAX(COUNT_NUMBER)
END) AS COUNT_NUMBER_OLD
と試みるが、私はこのエラーを取得する:あなたは、サブクエリを使用して、グループごとに最大count_numberを得ることができ
Column 'TABLE_A.COUNT_NUMBER' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
*私は条件が*のデータがない場合、データを表示したいと思いますか? –
正確には、条件がデータを持たない場合は、データを '' '0''と表示したい –