Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 55

Ошибка в запросе в ORDER BY

26.03.2012, 14:59. Показов 2126. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть запрос
SQL
1
2
3
4
5
SELECT HB_rukov.ID, HB_rukov.F, (HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, (HB_rukov.I & " " & HB_rukov.O) AS IO, HB_rukov.BirthD,
DateDiff("yyyy",HB_rukov.BirthD,DATE()) AS DifHB, DateAdd("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y,
IIf((HB_this_y)<DATE(),DateAdd("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, (HB_this_y-DATE()) AS HB_count,
MONTH(HB_this_y) AS HB_this_y_m, DAY(HB_this_y) AS HB_this_y_d FROM HB_rukov
ORDER BY  (( DateAdd("yyyy",(DateDiff("yyyy",HB_rukov.BirthD,DATE())),HB_rukov.BirthD))-DATE())
Ошибка: несоответствие типов данных в выражении условия отбора.

Без ORDER BY запрос выполняется.

Мне нужно, чтобы в запросе выводимые поля были упорядочены по столбцу HB_count.

Подскажите, что не так в запросе?


И еще: Столбец HB_count содержит как положительные так и отрицательные значения. Можно ли в результате запроса упорядочить значения так, чтобы сначала выводились от 0 до максимального а потом уже от максимально отрицательного до минимально-отрицательного?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.03.2012, 14:59
Ответы с готовыми решениями:

Ошибка при использовании DISTINCT, ORDER BY и CASE
Есть запрос, он выполняется без ошибок, но есть дублирующие записи SELECT &quot;Field2&quot; FROM &quot;Table1&quot; WHERE &quot;Fileld1&quot;...

Ошибка в запросе
select ОкладБольничного.Оклад/30*Больничный.ДнейБольничного as Итого from Больничный, ОкладБольничного where Больничный.ОкладБольничного =...

Ошибка в запросе
Всем привет, помогите пожалуйста с данным запросом. Выдаёт ошибку : ообщение 512, уровень 16, состояние 1, строка 4 Вложенный запрос...

7
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
26.03.2012, 22:56
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WITH Sales_CTE (ID, F, FIO, IO, BirthD, DifHB, HB_this_y, HB_next_y, HB_coun, HB_this_y_m, HB_this_y_d)
AS
(
SELECT HB_rukov.ID AS ID, 
HB_rukov.F AS F, 
(HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, 
(HB_rukov.I & " " & HB_rukov.O) AS IO, 
HB_rukov.BirthD AS BirthD,
DateDiff("yyyy",HB_rukov.BirthD,Date()) AS DifHB, 
DateAdd("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y,
IIf((HB_this_y)<Date(),DateAdd("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, 
(HB_this_y-Date()) AS HB_count,
Month(HB_this_y) AS HB_this_y_m, 
Day(HB_this_y) AS HB_this_y_d 
FROM HB_rukov
)
SELECT Sales_CTE
ORDER BY  Sales_CTE.HB_count
могут быть ошибки. что такое WITH здесь:
http://msdn.microsoft.com/en-u... 75972.aspx
0
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 55
27.03.2012, 08:49  [ТС]
_katon_, да, появляется ошибка:
Ошибочная инструкция SQL: предполагалось Delete, Insert, Procedure, Select или Update

без синтаксиса with Запрос выполняется
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.03.2012, 12:15
Я ошибся в запросе:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WITH Sales_CTE (ID, F, FIO, IO, BirthD, DifHB, HB_this_y, HB_next_y, HB_coun, HB_this_y_m, HB_this_y_d)
AS
(
SELECT HB_rukov.ID AS ID, 
HB_rukov.F AS F, 
(HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, 
(HB_rukov.I & " " & HB_rukov.O) AS IO, 
HB_rukov.BirthD AS BirthD,
DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) AS DifHB, 
DATEADD("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y,
IIf((HB_this_y)<Date(),DATEADD("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, 
(HB_this_y-DATE()) AS HB_count,
MONTH(HB_this_y) AS HB_this_y_m, 
DAY(HB_this_y) AS HB_this_y_d 
FROM HB_rukov
)
SELECT * FROM Sales_CTE
ORDER BY  Sales_CTE.HB_count
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
27.03.2012, 12:24
Цитата Сообщение от _katon_ Посмотреть сообщение
Я ошибся в запросе:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
WITH Sales_CTE (ID, F, FIO, IO, BirthD, DifHB, HB_this_y, HB_next_y, HB_coun, HB_this_y_m, HB_this_y_d)
AS
(
SELECT HB_rukov.ID AS ID, 
HB_rukov.F AS F, 
(HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, 
(HB_rukov.I & " " & HB_rukov.O) AS IO, 
HB_rukov.BirthD AS BirthD,
DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) AS DifHB, 
DATEADD("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y,
IIf((HB_this_y)<Date(),DATEADD("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, 
(HB_this_y-DATE()) AS HB_count,
MONTH(HB_this_y) AS HB_this_y_m, 
DAY(HB_this_y) AS HB_this_y_d 
FROM HB_rukov
)
SELECT * FROM Sales_CTE
ORDER BY  Sales_CTE.HB_count
А это на каком языке написано?
1
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.03.2012, 12:50
Ооооо!!
Я даже не обратил внимание на неподходящую для T-sql инструкци конкатенации:
SQL
1
(HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O)
в исходном запросе.
Теперь понятно почему такую ошибку пишет:
Ошибочная инструкция SQL: предполагалось Delete, Insert, Procedure, Select или Update
.

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

Коляк@, а вы что вообще делаешь и в чем?
0
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 55
27.03.2012, 13:13  [ТС]
_katon_, ошибка возникала из-за того, что одна из строк таблицы в поле даты ничего не содержала. после ее удаления запрос выполняется.

но я уже сделала по другому.

Однако, хотелось бы чтобы HB_count упорядочить значения так, чтобы сначала выводились от 0 до максимального а потом уже от минимально отрицательного до максимально отрицательного?
Н.: 0, 1, 4, 10, -1,-5, -10 и.т.д.

предлагаю сделать вот так. но пока не работает)))
т.е. работает, либбо по отдельности , либо выводит все, но не упорядочивает((
в чем ошибка?

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(
SELECT HB_rukov.ID AS ID, HB_rukov.F AS F, (HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, (HB_rukov.I & " " & HB_rukov.O) AS IO, HB_rukov.BirthD AS BirthD, DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) AS DifHB, DATEADD("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y, IIf((HB_this_y)<Date(),DATEADD("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, (HB_this_y-DATE()) AS HB_count, MONTH(HB_this_y) AS HB_this_y_m, DAY(HB_this_y) AS HB_this_y_d
FROM HB_rukov
where  ((DATEADD("yyyy",(DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) ),HB_rukov.BirthD))-DATE()) >=0
ORDER BY ((DATEADD("yyyy",(DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) ),HB_rukov.BirthD))-DATE()) ASC
)
 
UNION (
 
SELECT HB_rukov.ID AS ID, HB_rukov.F AS F, (HB_rukov.F & " " & HB_rukov.I & " " & HB_rukov.O) AS FIO, (HB_rukov.I & " " & HB_rukov.O) AS IO, HB_rukov.BirthD AS BirthD, DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) AS DifHB, DATEADD("yyyy",DifHB,HB_rukov.BirthD) AS HB_this_y, IIf((HB_this_y)<Date(),DATEADD("yyyy",1,HB_this_y),HB_this_y) AS HB_next_y, (HB_this_y-DATE()) AS HB_count, MONTH(HB_this_y) AS HB_this_y_m, DAY(HB_this_y) AS HB_this_y_d
FROM HB_rukov
where  ((DATEADD("yyyy",(DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) ),HB_rukov.BirthD))-DATE()) <0
ORDER BY ((DATEADD("yyyy",(DATEDIFF("yyyy",HB_rukov.BirthD,DATE()) ),HB_rukov.BirthD))-DATE()) DESC
);
0
 Аватар для _katon_
414 / 265 / 25
Регистрация: 03.10.2011
Сообщений: 1,094
27.03.2012, 18:07
Так вопрос же открытый! что за язык у вас? Исходя из того что написано здесь http://msdn.microsoft.com/en-u... 74965.aspx в T-SQL оператор & предназначен для
Performs a bitwise logical AND operation between two integer values.
что для гугла и для меня лично )) означает:
Выполняет побитовую логическую операцию И между двумя целыми числами.
Попробовал закодить в MenagmentStudio c использованием & (думаю может не знаю чего) и он тупо не понимает этот оператор если слева и справа не целочисленные значения. При использовании строк - ошибка:
The data types nvarchar and nvarchar are incompatible in the '&' operator.
Следовательно вопрос заданныйiap остается открытым:
А это на каком языке написано?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.03.2012, 18:07
Помогаю со студенческими работами здесь

ошибка в запросе
есть часть запроса: where c.Path LIKE '%' + CAST((c1.ID IN (select ID from tbl_CompanyMission c2 where c2.ParentID =...

Ошибка в запросе
Выполняю задачу на онлайн-сайте. Перечислите номера моделей любых типов, имеющих самую высокую цену по всей имеющейся в базе данных...

Ошибка в запросе
Задание:Какому поставщику было сделано больше всего заказов. Использую 2 таблицы. Нужно обязательно сделать с помощью пдзапросов, не могу...

Ошибка в запросе
Задание: Для каждого класса определите число кораблей этого класса, потопленных в сражениях. Вывести: класс и число потопленных кораблей. ...

Ошибка в запросе
Делаю запрос на заполнение таблиц. Таблицы создал, все нормально вышло, а вот с заполнением проблема. Где ошибка? Задание: Тестирование...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru