두 필드가있는 테이블을보고 있습니다. 하나는 특정 제품의 케이스 높이, 다른 하나는 너비입니다. 경우 중 일부는 높이와 너비에 대해 1X1입니다. 1 X 1 인 경우에 대해 곱한 모든 사례의 너비와 높이의 평균을 취하여 1에서 1까지의 새 측정 값으로 사용하는 사례 식을 작성하려고합니다.여러 조건 및 집계 함수가있는 사례 식
여기에 다른 사례가 나와 있습니다.
SELECT CASE
WHEN T5.width = '1'
AND T5.height = '1' THEN (
SELECT avg(t7.cube) AS AVG_cube
FROM
(SELECT (width*height) AS CUBE
FROM TABLE
GROUP BY height,
width) AS T7
ELSE (CASE
WHEN t5.height > '1'
AND t5.width > '1' THEN t5.height
ELSE t5.width
END)
END AS AVG_cube
이 숫자는 너무 높습니다. 너비와 높이가 1이 아니라면 이미있는 숫자를 사용하고 싶습니다. 이것이 끊기고있는 곳입니다. 나는 또한 단지 사용을 시도했다 :
ELSE T5.width
그리고 반대로 t5.height. 그들은 모두 한 때 높이 = 5 월 1 일하지만 폭이 난 단지 평균을 필요로 5 = 수있는 경우가 있기 때문에
SELECT CASE
WHEN t5.height = '1' then
(SELECT AVG(height)
FROM TABLE)
ELSE t5.height
END AS height CASE
WHEN t5.width = '1' then
(SELECT AVG(width)
FROM TABLE)
ELSE t5.width
END AS width
그러나 문제가 해결되지 않은 : 나는 또한 각각 따로 평균값을 수행했습니다.
나는 SQL 서버 2014을 사용하고 있습니다 및 이
Height | Width
-------+------
1 | 12
12 | 2
24 | 3
13 | 12
1 | 1
가 는 지금까지 답변은 내가 찾고있을 것이다 간다
같은 몇 가지 샘플 데이터는 같습니다
12 (1x12)
24 (2x12)
36 (3*12)
156 (13*12)
57 (AVG(Width*Height)
케이스 _expressions _... – jarlh
당신은 샘플 데이터, 원하는 결과 등을 제공 할 수 appropirate 데이터베이스 태그? –