SQL Query Несколько столбцов с использованием разметки только на одной колонке - программирование

SQL Query Несколько столбцов с использованием разметки только на одной колонке

Я пытаюсь написать SQL-запрос, который выбирает несколько столбцов из таблицы с отдельным оператором только в одном столбце.

Таблица проста. Столбцы:

tblFruit_ID, tblFruit_FruitType, tblFruit_FruitName
int          NVarChar            Text

Я пытаюсь выбрать все tblFruit_FruitType с их соответствующим tblFruit_ID.

Я пробовал:

Select Distinct(tblFruit_FruitType), tblFruit_ID FROM tblFruit

- возвращает все результаты, а не только отдельные

Select tblFruit_FruitType, tblFruit_ID FROM tblFruit Group By tblFruit_FruitType

-Errors with Column tblFruit_ID недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY.

Select tblFruit_FruitType, tblFruit_ID FROM tblFruit Group By tblFruit_FruitType, tblFruit_ID

- возвращает все результаты, а не только отдельные

Я также проверил эти похожие сообщения и не смог заставить ничего работать: (

mySQL выберите один столбец DISTINCT с соответствующими другими столбцами

SQL Server Distinct Union для одного столбца

Надеюсь, этого достаточно для ответа.

Спасибо за ваше время!

EDIT (Пример данных и желаемых результатов)

tblFruit_ID, tblFruit_FruitType, tblFruit_FruitName
int          NVarChar            Text
1            Citrus              Orange
2            Citrus              Lime
3            Citrus              Lemon
4            Seed                Cherry
5            Seed                Banana

Результаты:

1            Citrus
4            Seed
4b9b3361

Ответ 1

select * from tblFruit where
tblFruit_ID in (Select max(tblFruit_ID) FROM tblFruit group by tblFruit_FruitType)

Ответ 2

Вы должны использовать агрегатную функцию в столбцах, против которых вы не группируете. В этом примере я произвольно выбрал функцию Min. Вы комбинируете строки с тем же значением FruitType. Если у меня есть две строки с тем же значением FruitType, но разные значения Fruit_Id, например, что должна делать система?

Select Min(tblFruit_id) As tblFruit_id
    , tblFruit_FruitType
From tblFruit
Group By tblFruit_FruitType

Пример SQL Fiddle

Ответ 3

Мне нужно было сделать то же самое и пришлось запросить запрос, чтобы получить результат

Я установил свой первый запрос для ввода всех идентификаторов из таблицы и всей другой информации, необходимой для фильтрации:

SELECT tMAIN.tLOTS.NoContract, tMAIN.ID
FROM tMAIN INNER JOIN tLOTS ON tMAIN.ID = tLOTS.id
WHERE (((tLOTS.NoContract)=False));

Сохраните это как Q04_1 -0, это вернуло 1229 результатов (имеется 63 уникальных записей для запроса - тогда с несколькими LOT)

SELECT DISTINCT ID
FROM q04_1;

Сохранено, что как q04_2

Затем я написал другой запрос, который привел необходимую информацию, связанную с идентификатором

SELECT q04_2.ID, tMAIN.Customer, tMAIN.Category
FROM q04_2 INNER JOIN tMAIN ON q04_2.ID = tMAIN.ID;

Работала с удовольствием и получила именно то, что мне было нужно - 63 уникальные записи, возвращенные с деталями клиента и категории.

Вот как я работал над этим, так как я не мог получить группу. Работая вообще, хотя я довольно "мочу за уши" weith SQL (так что будьте осторожны и конструктивны с обратной связью)