У меня есть набор записей, которые когда-то были сгруппированы. Мне хотелось бы присвоить категорию, основанную на комбинациях записей в этой группе.Как установить категорию на основе элементов в предложении group-by в Transact-sql?
Интересно, как лучше всего это сделать ... все, что я могу придумать это то, что у меня ниже, но думал, что может быть более умный способ сделать это (с помощью UDF, может быть?)
SELECT *
, case when productgroup in ('chihuaha','labrador') then 1 else 0 end AS Dog
, case when productgroup in ('siamese', 'tabby') then 1 else 0 end as Cat
INTO #tmp_items
FROM dbo.Items
SELECT docket
, sum(value)
, case when sum(Dog) > 0 and sum(Cat) > 0 then 'Dog and Cat'
when sum(Dog) > 0 and sum(Cat) = 0 then 'Dog Only'
when sum(Dog) = 0 and sum(Cat) > 0 then 'Cat Only'
end
as Purchase_Type
FROM #tmp_items
GROUP BY docket
Этот ответ помог мне написать совокупный выбор с левыми внешними соединениями в таблицы поиска, спасибо! –