2010-12-06 2 views
1

Извините, если заголовок запутан. По сути, у нас есть набор иерархических таблиц категорий, групп, коллекций и т. Д. С отдельными элементами внизу иерархии.SQL-запрос для возврата категории, если существуют субиты и «другое имя», если субайтмы существуют с категорией

Так что в целом у нас есть что-то вроде Категория> Группировка> Коллекция> Предмет. Однако некоторые элементы не входят в коллекцию. Мне нужен запрос, который будет возвращать детали коллекции, если хотя бы один элемент существует в коллекции для заданных условий поиска и «Другой» (значение флага или что-то еще), если элементы существуют в категории и группировке, но не находятся в Коллекция (в этом случае внешний ключ «collection_id» будет пустым).

Результат я пытаюсь достичь что-то вроде:

Collection Name 1 
    Item 
    Item 
    ... 
Collection Name 2 
    Item 
    Item 
    ... 
Collection Name X 
    Item 
    ... 
Other Items 
    Item 
    Item 
    ... 

Можно ли (и достаточно просто), чтобы сделать это с помощью одного запроса?

+3

Можете ли вы дать частичную структуру таблицы? Существует множество способов реализации иерархических данных. – NotMe 2010-12-06 23:18:37

ответ

0

Это не будет форматировать данные так, как вы указали, но похоже, что что-то вроде линий SELECT CASE WHEN CollectionID IS NULL THEN 'Other Items' ELSE CollectionName END, ItemName сделало бы трюк. В основном я парень SQL Server, но я думаю, что это довольно стандартный SQL.

Смежные вопросы