Минимальное значение без минус значения в SQL

#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. Заранее спасибо..