Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизВопрос по Access Найти похожие ветки
← →
Crazy manager (2006-06-15 10:53) [0]Есть обычная таблица, где есть 2 самых важных поля: "месяц" и "сумма". Проблема в том, что в "месяце" месяцы в текстовом формате (Январь, Февраль ...), т.к изначально меня это вполне устраивало. Однако, сейчас я делаю запрос на группировку и хочу сортировать месяцы по убыванию.
Без сортировки, выглядит так:
Январь 100
Март 200
Октябрь 450
Май 700
и.т.д.
Необходимо чтобы было так:
Январь 100
Февраль 150
Март 200
Апрель 100
и.т.д
Как быть в этой ситуации? Аксес видит, что это текстовые поля и видимо сортирует их по количеству символов в слове, а необходимо сортировка по месяцам. Как выполнить данную задачу?
← →
blackcrazzy © (2006-06-15 11:00) [1]Select * FROM Таблица ORDER BY Месяц
← →
Sergey13 © (2006-06-15 11:06) [2]Нет ли в Аксесе функции а-ля Оракловому DECODE?
ЗЫ: В качестве "потрепаться" - как сделал, так и получилось. 8-)
← →
Crazy manager (2006-06-15 11:10) [3]Так и делаю:
SELECT Счета.Месяц, Sum(Счета.Сумма) AS [Sum-Сумма]
FROM Счета
GROUP BY Счета.Месяц
ORDER BY Счета.Месяц DESC;
Проблема в том, что месяц идет как текст, поэтому и группировка корявая... не по сути (т.е не по хронологии), а по непонятно какому принципу.
← →
Crazy manager (2006-06-15 11:11) [4]
> Нет ли в Аксесе функции а-ля Оракловому DECODE?
Это типа риторический вопрос? Типа есть такая функция? Я просто Аксес только стал осваивать.... много всего не знаю.
← →
blackcrazzy © (2006-06-15 11:14) [5]Извиняюсь, это сортировка месяцев по алфавиту.
← →
Sergey13 © (2006-06-15 11:18) [6]2[4] Crazy manager (15.06.06 11:11)
> Я просто Аксес только стал осваивать
Ну так переделай сразу нормально, вместо названия месяца поставь номер.
← →
КаПиБаРа © (2006-06-15 11:18) [7]Добавь поле Месяц в числовом формате
← →
crazy all (2006-06-15 11:19) [8][2] почему вы не добавили кодовое слово принадлежности?
← →
Crazy manager (2006-06-15 11:25) [9]
> Добавь поле Месяц в числовом формате
Я извеняюсь а как? У меня достаточно здоровая таблица и переделывать ее вручную думаю будет мягко говоря мучительным процессом. Можно автоматизировать этот процесс? Есть какие-нить встроенные функции в Аксесе? Может в запрос вставить определенное условие?
← →
ЮЮ © (2006-06-15 11:40) [10]
> У меня достаточно здоровая таблица и переделывать ее вручную
> думаю будет мягко говоря мучительным процессом.
Интересно, под переделыванием "вручную" что понимается, если не
1) Добавить поле НомерМесяца в режиме конструктора
2) выполнить 12 запросов
Update Счета SET НомерМесяца = 1 WHERE Месяц = "Январь"
...
Update Счета SET НомерМесяца = 12 WHERE Месяц = "Декабрь"
3) Убить поле Месяц в режиме конструктора
З.Ы. Странная, однако, табличка. А как в следующем году ею пользоваться будешь? Опять январь придет
← →
КаПиБаРа © (2006-06-15 11:44) [11]Типа этого
Update
(FCodeMonth)
values
(1)
where FMonth = "Январь"
точный синтаксис не помню
← →
sniknik © (2006-06-15 12:04) [12]> Нет ли в Аксесе функции а-ля Оракловому DECODE?
нет, но есть даже несколько "обходных" маневров сделать желаемое (хотя месяц хранить строкой... странно по крайней мере)
например
SELECT * FROM xxxxx ORDER BY CDate(MonthField+" 1, 1")
тар будет работать, но только на русифицированной винде, и при условии что в названии кокогонибудь месяца не допущена ошибка...
также можно желаемый порядок задать условием с помощью iif или Switch.
← →
sniknik © (2006-06-15 12:08) [13]> 2) выполнить 12 запросов
достаточно одного. по тому же принципу
Update Счета SET НомерМесяца = Month(CDate(Месяц+" 1, 1"))
← →
Crazy manager (2006-06-15 12:35) [14]Спасибо за помощь! По совету решил принципиально все переделать. Машина с квадратными колесами, которые сейчас у меня стоят, меняем на овальные :) , т.к жить так дальше нельзя. Вообще мораль моего вопроса в том, что надо изначально все делать правильно чтобы потом не страдать фигней.
← →
Percent (2006-06-15 12:46) [15]Вообще мораль моего вопроса в том, что надо изначально все делать правильно чтобы потом не страдать фигней.
Золотые слова. Используйте для поля даты и времени тип DATETIME.
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c