| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 | |||||
|
Member
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328
![]() ![]() |
Помогите с SQL запросом. Вопрос по получению уникальной записи.
Доброго времени суток.
Есть рабочий запрос: Цитата:
Насколько я понял такой результат я могу получит ь используя GROUP BY control_t.control_id. Но такой вот запрос не работает: Цитата:
1: Цитата:
Цитата:
Есть три таблицы: Цитата:
|
|||||
|
|
|
|
# 2 |
|
Junior Member
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96
![]() ![]() |
Raven B.:
Попробуй так: Код:
sql_q = "SELECT control_t.control_id, FIRST(ph_f_control_comp_t.control_comp_id), FIRST(control_t.control)" sql_q = sql_q & " FROM ph_f_control_comp_t, control_comp_t, control_t" sql_q = sql_q & " WHERE ((Str(control_comp_t.control_id) = Str(control_t.control_id))" sql_q = sql_q & " AND (str(ph_f_control_comp_t.control_comp_id)=str(control_comp_t.control_c omp_id))" sql_q = sql_q & " AND (ph_f_control_comp_t.norm_id = '" & veg & "')) GROUP BY control_t.control_id;"
__________________
1 миллибайт = 1/1024 байта Последний раз редактировалось LightImage; 24.10.2005 в 12:28. |
|
|
|
|
# 3 | |
|
Member
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328
![]() ![]() |
Не помогло. Дает 0 вхождений.
Чесноговоря не понял при чем здесь FIRST. В доках написано что он вообще не к SELECT применяется. Или я что то пропуситл ? Цитата:
С уважением. Ворон. |
|
|
|
|
|
# 4 |
|
Junior Member
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96
![]() ![]() |
А, так это MySQL, я почему-то думал это в Access =)
Ну в общем агрегатные функции надо использовать для остальных столбцов, по которым группировка не ведется. Замени FIRST, скажем, на MAX.
__________________
1 миллибайт = 1/1024 байта |
|
|
|
|
# 5 | |
|
Member
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328
![]() ![]() |
Цитата:
![]() Ничего не вышло. Результат - нулевой выход. Впротчем я проблему обойдя ее. Увеличелось количество запросов. Но что ж поделаешь Так что тему можно закрывать. |
|
|
|
|
|
# 8 |
|
Junior Member
Регистрация: 16.10.2002
Адрес: Россия-матушка
Пол: Male
Сообщения: 96
![]() ![]() |
Так тебе надо из записей с повторяющимися значениями 2-го и 3-го полей выбрать одну с любым значением 1-го поля? Тогда группируй по 2-му и 3-му полям, а к 1-му применяй агрегатную функцию, такую как First, Max, Min и т.п., в зависимости от синтаксиса используемой СУБД
__________________
1 миллибайт = 1/1024 байта |
|
|
|
|
# 9 |
|
Member
Регистрация: 12.07.2004
Адрес: Очень странное место.
Сообщения: 328
![]() ![]() |
Из
control_t.control_id, ph_f_control_comp_t.control_comp_id, control_t.control ph_f_control_comp_t.control_comp_id - всегда уникальна а control_t.control_id и control_t.control часто дублируются. Надо было оставить только вхождения с уникальными control_t.control_id и control_t.control. DISTINCT не работал из за того что ph_f_control_comp_t.control_comp_id всегда уникальна. MIN и MAX дают 0 выход почему то. СУБД - Access. В принципе задача уже не актуальна так как я решил ее разбив запрос на несколько запросов. |
|
|