#ms-access
Вопрос:
Колонка 1 | Колонка 2 | Колонка 3 |
---|---|---|
5 | -14 | 7 |
6 | -20 | 7 |
7 | -5 | 8 |
7 | 2 | -1300 |
8 | -9 | 8 |
9 | -10 | 9 |
9 | 10 | -1300 |
10 | -15 | 9 |
10 | 15 | -1300 |
С помощью этого запроса
select colum1, sum(column2), min(column3)
from Table
group by column1
Мы получаем
Колонка 1 | Колонка 2 | Колонка 3 |
---|---|---|
5 | -14 | 7 |
6 | -20 | 7 |
7 | -1 | -1300 |
8 | -9 | 8 |
9 | 0 | -1300 |
10 | 0 | -1300 |
Как я могу получить значение 8, кроме -1300 в строке 3, и значение 9, кроме -1300 в строке 5, и значение 9, кроме -1300 в строке 6 ?
Я имею в виду, что в столбце 3 мне нужно минимальное значение, кроме минус значения (например, -1300 заменить другим минимальным значением).
Колонка 1 | Колонка 2 | Колонка 3 |
---|---|---|
5 | -14 | 7 |
6 | -20 | 7 |
7 | -1 | 8 |
8 | -9 | 8 |
9 | 0 | 9 |
10 | 0 | 9 |
Я не могу использовать оператор, потому что он удалит строку, поэтому значение column2 будет изменено. Он не вернет правильную запись
Комментарии:
1. Я удалил несогласованные теги базы данных. Пожалуйста, отмечайте только ту базу данных, которую вы действительно используете.
Ответ №1:
В стандартном синтаксисе SQL вы бы использовали case
:
select column1, sum(column2),
min(case when column3 > 0 then colum3 end)
from Table
group by column1;
Эквивалентом в MS Access является:
select colum1, sum(colum2),
min(iif(column3 > 0, column3, null))
from Table
group by colum1
Комментарии:
1. спасибо, сэр, это работает на Sql, но я использую базу данных ACCESS.. Извините за мою ошибку в теге.
2. я попробовал это в базе данных SQL, результат идеален, но этот запрос не может быть использован в Access.. можете ли вы помочь мне с базой данных access. Заранее спасибо..