Мое решение:
Удалите все проверки ориентации из exif-данных. Я не смог найти ни одного случая, где это было бы точно.
Используйте стандарт String[] orientationColumn = {MediaStore.Images.Media.ORIENTATION};
, чтобы получить ориентацию.
Если это 0
, используйте decodeStream ...
if(o.outHeight > o.outWidth){ //set orientation to portrait }
еще это пейзаж
Это ошибка, которую вы получаете (выделено мной):
Предложение ORDER BY недопустимо в представления, встроенные функции, производные таблицы, подзапросы и общая таблица выражений, , если только TOP или FOR XML также указано.
Итак, как можно избежать ошибки? Я полагаю, что указание TOP было бы одной из возможностей.
SELECT (
SELECT TOP 100 PERCENT
COUNT(1) FROM Seanslar WHERE MONTH(tarihi) = 4
GROUP BY refKlinik_id
ORDER BY refKlinik_id
) as dorduncuay
В этом примере порядок сортировки не добавляет информации - СЧЕТЧИК набора тот же, в каком бы порядке он ни был!
Если бы вы выбирали что-то, от чего зависело заказ, вам нужно будет сделать одно из того, что сообщает вам сообщение об ошибке - использовать TOP или FOR XML
Добавьте команду Top в свой подзапрос ...
SELECT
(
SELECT TOP 100 PERCENT
COUNT(1)
FROM
Seanslar
WHERE
MONTH(tarihi) = 4
GROUP BY
refKlinik_id
ORDER BY
refKlinik_id
) as dorduncuay
:)
Вам не нужен заказ по в подзапросе. Переместите его в основной запрос и включите столбец, который вы хотите упорядочить, в подзапрос.
однако ваш запрос просто возвращает счетчик, поэтому я не вижу смысла упорядочивания по.
Подзапрос (вложенное представление) в том виде, в каком он у вас есть, возвращает набор данных, который вы затем можете упорядочить в своем вызывающем запросе. Заказ самого подзапроса не повлияет (надежно) на порядок результатов в вызывающем запросе.
Что касается самого вашего SQL: а) Я не видел причин для заказа, поскольку вы возвращаете одно значение. б) Я все равно не вижу причин для подзапроса, поскольку вы возвращаете только одно значение.
Я предполагаю, что здесь есть намного больше информации, которую вы могли бы сообщить нам, чтобы решить возникшую у вас проблему.
Помимо того, что order by, похоже, не имеет смысла в вашем запросе..... Чтобы использовать order by в sub select, вам нужно использовать TOP 2147483647.
SELECT (
SELECT TOP 2147483647
COUNT(1) FROM Seanslar WHERE MONTH(tarihi) = 4
GROUP BY refKlinik_id
ORDER BY refKlinik_id
) as dorduncuay
Насколько я понимаю, "TOP 100 PERCENT" больше не гарантирует упорядочивание, начиная с SQL 2005:
В SQL Server 2005, ORDER BY в определении представления используется только для определения строк, которые возвращаются предложением TOP. Предложение ORDER BY не гарантирует упорядоченных результатов при запросе представления, если только ORDER BY также не указан в самом запросе.
См. SQL Server 2005 breaking changes
Надеюсь, это поможет, Патрик