![]() |
Форматирование запроса SQL
Поскажите плиз. Допустим имеется таблица d с полем date типа date вот. Каким образом можно представить все эти дни в виде таблицы из 7 столбцов, где каждая строка представляет собой неделю от понедельника до воскресенья. ну что то типа:
Пон. Втор. Среда. Четв. Пятн. Суб. Вос. null null null 1950-05-01 1950-05-02 1950-05-03 1950-05-04 Заранее благодарен за ответы. |
Может быть что-то вроде этого:
Код:
SELECT `date` AS 'Четв.' FROM `d` WHERE DATEDIFF(day, '1950-05-01', `date`)%7=0; Функция DATEDIFF() в теории считает количество (дней в данном случае) между первой и второй датой. Далее - берём остаток от деления на 7. Если равен нулю, то такой-то день (хз какой, может быть четверг, может, понедельник или что-то другое. Там видно будет), если единице - следующий . Подробнее про DATEDIFF(). Проверить не могу, т.к. нет ни MS-SQL-сервера, ни желания заполнять таблицу значениями. |
Спасибо конечно, но что то подобное я могу сам написать причем еще проще:
Код:
SELECT date AS 'Четв.' FROM d WHERE DATEPART(dw,d.date)=3 ; Пон. Втор. Среда. Четв. Пятн. Суб. Вос. null null null 1950-05-01 1950-05-02 1950-05-03 1950-05-04 1950-05-05 1950-05-06 1950-05-01 1950-05-07 1950-05-08 1950-05-09 1950-05-10 и т.д. Вот в чем дело. Все еще жду ваших предложений. |
ValVlaGen, а смысл? - сервер возвращает данные. За их красивое отображение отвечает клиент.
|
Цитата:
|
ValVlaGen,
Решайте клиентов.... Пусть база вернёт все даты, но отсортированные по возрастанию - и теперь достаточен всего один while, чтобы построить нужную вам таблицу (так как даты отсортированы - там точно идут дни по порядку) |
ValVlaGen, ваш запрос "перевернуть" на стороне сервера не получится, подобное "транспонирование" можно, как уже указали, сделать только на стороне клиента, при отображении.
|
Я уже решил данную задачу на стороне сервера. У меня другой вопрос как можно написать запрос на изменение порядка слов на обратный. Например есть текстовое поле
Код:
Мама мыла раму Код:
раму мыла Мама |
Цитата:
|
Цитата:
Ну правда классное решение. Дизреспект за такие ответы ребята. Мне помошь нужна, а не нравоучения. Если не знаете как это сделать, ну правда не пишите нечего тогда. |
ValVlaGen, никто не нравоучал вас. Просто, хотя бы примерно зная, для чего такие сложности, и ответы могут быть разными. Один вариант я вам уже привел, но, видимо, дальше бубна вы не читали.
Создаете процедуру, в ней 2 переменных - в первой весь текст, во вторую будут падать "слова". Запоминаем позиции пробелов в цикле и потом выдергиваем слова с конца до начала, записывая результат во вторую переменную. Итоговый результат можно ложить куда угодно. Это в теории. Если теория подойдет, могу создать примерную процедуру. |
Стоит задача написать этот механизм изменения порядка слов именно с помошью одного только запроса.
|
Время: 14:48. |
Время: 14:48.
© OSzone.net 2001-