언어 : T-SQL
서버 : SQL 서버 2014SQL은 : 고유 한 카운트와 결합 마찬가지로-명명 된
나는 PC에 테이블이 있고 각 PC의 수를 좀하고 싶습니다 제조업체. 간단하지만, 각 PC에서 데이터를 가져올 때 일부 오래된 HP 컴퓨터는 제조업체를 "Hewlett-Packard"로보고하고 최신 컴퓨터는 제조업체를 "HP"로보고합니다. 나는 이것을 "HP"에 결합하고 싶습니다. 어떤 대체하지 않습니다 쿼리/결합은 다음과 같다 :
Manufacturer Number of Each
Dell Inc. 10
Hewlett-Packard 6
HP 6
원하는 출력 :
Manufacturer Number of Each
Dell Inc. 10
HP 12
어떻게 쿼리
SELECT
DISTINCT f_assetmanufacturer AS 'Manufacturer',
COUNT(DISTINCT f_assettagID) AS 'Number of Each'
FROM tb_assets
GROUP BY f_assetmanufacturer
샘플 출력 전류 쿼리를 기반으로 "HP"와 "Hewlett-Packard"COUNT를 결합하여 재 작성해야합니까?
감사합니다,이 작동하는 것 같다. SELECT 문에서 "Replace"를 시도했지만 여전히 "12"대신 "6"만을 반환합니다. 나는 그것이 GROUP BY 문장에서도 필요하다는 것을 깨닫지 못했다. 이 옵션이 짧은 것보다 @jhilden의 응답보다 더 나은지 여부를 밝힐 수 있습니까? – Beems
단일 대체를 수행해야하는 경우 내 솔루션이 더 간단합니다. 여러 이름을 바꿔야하는 경우 REPLACE 문을 연결해야합니다. 이 경우 @ jhilden의 솔루션은 훨씬 더 우아해질 것입니다. 제조업체 맵핑을 정기적으로 업데이트해야하는 경우 John Cappelletti와 같은 매핑 테이블을 만드는 것이 훨씬 더 좋습니다. 작업을 완료하는 가장 간단한 도구를 사용하십시오. –
다행히도 교체 횟수를 늘릴 필요가 거의 없습니다. 현재 "HP"와 "Hewlett-Packard"는 5000 대의 PC에 24 개의 다른 제조업체가있는 데이터베이스에도 불구하고 동일합니다. 다른 제조업체들은 모두 자신들이 OS에 자신을보고하는 방식에 일관성이있는 것처럼 보입니다. – Beems