|
|
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Вопрос может показаться идиотским, но все же рискну... Киньте ссылочку и/или подскажите кто-нибудь решал такую задачу: в таблицах и запросах используются в названии поля типа Mon01, Mon02, Mon03 (янв03, фев03, март03 соответственно) и т.д., означающие месяца года. Причем от месяца к месяцу они сдвигаются, т.е. Mon01 (был янв03) в следующем месяце становиться фев03, соответственно и все сдвигаются. Все было хорошо, пока не назрела необходимость, чтобы в запросе при его выполнении название столбца отражалось не как Mon1, а как месяц, который участвует на данный момент в расчете (как я уже упоминал выше, напр. фев03). Подскажите, плз, как можно извратиться и написать в запросе или SQL. СПАСИБО Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:35 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
select mon1 as фев03, ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:37 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Саныч, а в следующем месяце писать: select mon1 as мар03,.... ? Хотелось бы, чтоб автоматом, и... забыть. Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:39 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Тогда надо написать программу, которая будет сочинять этот селект. А потом забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:45 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:49 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Именно в запросе. Только я не понял, зачем это надо. Юзеры открывают на экране запрос??? А не форму??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:50 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
мне кажется В.С. предложил хорошее решение..... т.е. делаешь эту sql строку динамически в вба как я понял Mon01- это текущий месяц... т.е. из функции date() ... (не помню как выделить месяц числом.) Mon01 as date(...) Mon02 as date(...)+1 и т.д.... ну как то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:58 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
По мне лучше через DAO сменить свойство Description поля перед выполнением запроса, но лучше использовать формы/отчеты все-таки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 17:05 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
А вот так Mon02 as date(...)+1 не получится. Надо так: "Mon02 as " & format(date, "mmmyy") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 17:07 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Это надо не юзерам, а мне для периодических добавлений/изменений. vlad_707 посоветовал... т.е. делаешь эту sql строку динамически в вба как я понял Mon01- это текущий месяц... т.е. из функции date() ... (не помню как выделить месяц числом.) Mon01 as date(...) Mon02 as date(...)+1 и т.д.... ну как то так... Это-то я понимаю.... Но куда это вставить!? (Начало такое: SELECT РазницаИнвест.Fcount AS [Счетчик по базе], РазницаИнвест.ComboDeptCode AS [Центр затрат], РазницаИнвест.ComboDepRusName AS [Наимен Подразделения], РазницаИнвест.Comments AS Примечания, РазницаИнвест.Примечание , РазницаИнвест.Mon13 AS [11/03], РазницаИнвест.Mon14 AS [12/03], ... ) Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 17:07 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
можешь менять системное время т.е. в системном времени менять месяц и тогда моя система заработает..... хм... только нужно ли так делать...... GetSystemTime This function retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC). void GetSystemTime( LPSYSTEMTIME lpSystemTime ); Parameters lpSystemTime [out] Pointer to a SYSTEMTIME structure to receive the current system date and time. Return Values None. Requirements Runs on Versions Defined in Include Link to Windows CE OS 1.0 and later Winbase.h Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API. SYSTEMTIME This structure represents a date and time using individual members for the month, day, year, weekday, hour, minute, second, and millisecond. typedef struct _SYSTEMTIME { // st WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME; Members wYear Specifies the current year. wMonth Specifies the current month; January = 1, February = 2, and so on. wDayOfWeek Specifies the current day of the week; Sunday = 0, Monday = 1, and so on. wDay Specifies the current day of the month. wHour Specifies the current hour. wMinute Specifies the current minute. wSecond Specifies the current second. wMilliseconds Specifies the current millisecond. Remarks It is not recommended that you add and subtract values from the SYSTEMTIME structure to obtain relative times. Instead, you should Convert the SYSTEMTIME structure to a FILETIME structure. Copy the resulting FILETIME structure to a ULARGE_INTEGER structure. Use normal 64-bit arithmetic on the ULARGE_INTEGER value. Requirements хм.... но я бы так не заморачивался.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 18:21 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Классно!!! (я о системном времени) Так же можно не только себе помочь - НО, ГЛАВНОЕ - ВСЕМ ПОДГАДИТЬ,,, Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2004, 08:25 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
вот тебе ещё... Шаг 10 - Инструкция Date Устанавливает текущую системную дату: Date = дата Параметры дата Для компьютеров, работающих под управлением Microsoft Windows 95, аргумент дата должен задавать дату в интервале от 1 января 1980 года до 31 декабря 2099 года. Для компьютеров, работающих под управлением Microsoft Windows NT, дата в интервале от 1 января 1980 года до 31 декабря 2079 года. Пример В данном примере инструкция Date используется для установки системной даты. В среде разработчика дата изображается в кратком формате с использованием текущих национальных настроек. Dim MyDate MyDate = #February 12, 1985# ' Присваивает дату. Date = MyDate ' Изменяет системную дату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2004, 10:00 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Бился, бился - получил... (табл "Месяцы" содержит данные типа 01/04) TRANSFORM IIf(Format(Date(),"mm\/yy")=Месяцы!NameForForms,РаИ!Mon13, IIf(Format(Date()+31,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon14, IIf(Format(Date()+62,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon15, IIf(Format(Date()+93,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon16, IIf(Format(Date()+124,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon17, IIf(Format(Date()+155,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon18, IIf(Format(Date()+186,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon19, IIf(Format(Date()+217,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon20, IIf(Format(Date()+248,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon21, IIf(Format(Date()+279,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon22, IIf(Format(Date()+310,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon23, IIf(Format(Date()+340,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon24, IIf(Format(Date()+360,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon25,999999999))))))))))))) AS Выражение1 SELECT РаИ.Fcount AS [Счетчик по базе], РаИ.Comments AS Примечание, РаИ.Примечание AS [Примечание Операций], РаИ.ComboDeptCode AS [Центр затрат], РаИ.ComboDepRusName AS [Наимен Подразделения] FROM РаИ, Месяцы WHERE (((РаИ.Примечание) Is Not Null)) GROUP BY РаИ.Fcount, РаИ.Comments, РаИ.Примечание, РаИ.ComboDeptCode, РаИ.ComboDepRusName, РаИ.Mon13, РаИ.Mon14, РаИ.Mon15, РаИ.Mon16, РаИ.Mon17, РаИ.Mon18, РаИ.Mon19, РаИ.Mon20, РаИ.Mon21, РаИ.Mon22, РаИ.Mon23, РаИ.Mon24, РаИ.Mon25 ORDER BY РаИ.Fcount, РаИ.Примечание, РаИ.ComboDeptCode PIVOT Месяцы.NameForForms WITH OWNERACCESS OPTION; Всё работает, при изменении времени в ПК - происходит сдвиг месяцев и т.п. НОООО! Непонятно почему одна строка всё время выдаёт ошибку, т.е. заносит в исполнение запроса значение "999999999". Я проверял форматы, пути, формулы... Нашел зависимость - стоит из запроса убрать в GROUP BY РаИ.Mon13, РаИ.Mon14 (соответственно и в TRANSFORM IIf(Format(Date(),"mm\/yy")=Месяцы!NameForForms,РаИ!Mon13,IIf(Format(Date()+31,"mm\/yy")=Месяцы!NameForForms,РаИ!Mon14 ), как из двенадцати полей в десяти полях наблюдаются нужные значения, а не "9999999999". ПЛЗ, подскажите, в чем может быть заковыка? Мне нужны данные по всем 12 полям. Прошу прощения за вид запроса - проще придумать не смог... Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 17:21 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Если этот запрос написан руками, то надо его исправить. Если есть какая-то программа, которая его сочиняет, то надо искать в ней ошибку. Правда, содержательный ответ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2004, 21:49 |
|
||
|
задать название столбца в запросе
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч Очень точно подметил.. Если этот запрос написан руками, то надо его исправить.... Спасибо ему за краткий и помогающий (ободряющий, укрепляющий и т.д. и т.п.) ответ.... Stepler (щёлк-щёлк!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2004, 08:25 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1690&tid=1677030]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 387ms |

| 0 / 0 |
