Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Изменить формат полей в запросе  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 59
Добрый день, коллеги

Подскажите пожалуйста, как можно в запросе с UNION изменить формат полей при выводе запроса?
Дело в том, что с UNION нет возможности зайти в конструктор и вызвать свойство поля и в окне свойств изменить формат поля.

Спасибо.
27 янв 20, 11:41    [22067042]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6439
_s_e_r_g_e_,
А что мешает изменить формат поля в объединяемых запросах?
27 янв 20, 11:59    [22067053]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 59
не очень понимаю , как это сделать. Это один запрос

SELECT IIF( a.item is null, b.item,a.item) as item, IIF( a.country is null, b.country,a.country) as country, IIF( a.loc is null, b.loc,a.loc) as loc, IIF( a.week_ is null, b.week_,a.week_) as week,
IIF( a.year_ is null, b.year_,a.year_) as year, a.SumOfQTY as forecast,  b.SumOfQTY as order_, (select  sku from spr_sku where IIF( a.item is null, b.item,a.item) =spr_sku.item) as sku,
(select  category from spr_sku where IIF( a.item is null, b.item,a.item) =spr_sku.item) as category, (select DMR from spr_sku where IIF( a.item is null, b.item,a.item) =spr_sku.item) as DMR,
(SELECT  flag  from uniq_sku WHERE IIF( a.country is null, b.country,a.country) = uniq_sku.country  AND  IIF( a.item is null, b.item,a.item) = uniq_sku.item)  as flag
FROM FCST_ a LEFT JOIN ORDERS_ b ON (a.year_ = b.[year_]) AND (a.week_ = b.[week_]) AND (a.Loc = b.loc) AND (a.item = b.item) AND (a.country = b.country);

UNION

SELECT IIF( a.item is null, b.item,a.item)  as item,IIF( a.country is null, b.country,a.country) as country, IIF( a.loc is null, b.loc,a.loc) as loc, IIF( a.week_ is null, b.week_,a.week_) as week,
IIF( a.year_ is null, b.year_,a.year_) as year, a.SumOfQTY as forecast,  b.SumOfQTY as order_, (select  sku from spr_sku where IIF( a.item is null, b.item,a.item) =spr_sku.item) as sku,
(SELECT  category from spr_sku WHERE IIF( a.item is null, b.item,a.item) =spr_sku.item) as category, (select DMR from spr_sku where IIF( a.item is null, b.item,a.item) =spr_sku.item) as DMR,
(SELECT flag  from uniq_sku WHERE IIF( a.country is null, b.country,a.country) = uniq_sku.country  AND  IIF( a.item is null, b.item,a.item) = uniq_sku.item) as flag
FROM FCST_  a RIGHT JOIN ORDERS_  b ON (a.year_ = b.[year_]) AND (a.week_ = b.[week_]) AND (a.Loc = b.loc) AND (a.item = b.item) AND (a.country = b.country);


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

два запроса не хочу создавать, так как во-первых не хочу плодить промежуточные запросы (запросв очень много в базе и можно запутаться), во-вторых если нужно что-то модернизировать , то ее нужно выполнять во всех связанных запросах, что не очень удобно.
27 янв 20, 12:07    [22067061]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
_s_e_r_g_e_, если совсем просто, то используй свой запрос на объединение как источник для другого запроса, а там уже поменяй формат в конструкторе.
27 янв 20, 12:23    [22067076]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
_s_e_r_g_e_
...Это один запрос...
чо правда? и не ругается что обнаружены какие-то знаки после запроса?
27 янв 20, 12:33    [22067090]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 453
_s_e_r_g_e_, а зачем вам это именно в запросе? Где вы его используете?
И что именно вас интересует (тип значения, знаки после запятой, выравнивание и т.д.)?

Но если очень надо - создайте новый запрос, источником которого ваш сохраненный UNION. Там, в конструкторе, и указывайте формат.
27 янв 20, 12:33    [22067091]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 59
автор
_s_e_r_g_e_, если совсем просто, то используй свой запрос на объединение как источник для другого запроса, а там уже поменяй формат в конструкторе.


Я написал выше , что не хочу плодить запросы.

Вот , какая идея родилась - использовать FORMAT. В общем разобрался. Спасибо

SELECT  format(flag , "True/False")
27 янв 20, 12:35    [22067094]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4620
_s_e_r_g_e_
Я написал выше , что не хочу плодить запросы.
Странная постановка...
Так будет один.
SELECT q.item, ...
FROM (
SELECT NZ( a.item, b.item) as item, ...
UNION
SELECT NZ( a.item, b.item) as item,,... 
) as q


Сообщение было отредактировано: 27 янв 20, 12:41
27 янв 20, 12:39    [22067097]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 453
А, увидел..
_s_e_r_g_e_
значения логического поля выводятся, как пусто или -1, а мне нужно , чтобы выводилось истина или ложь.

Можно в каждой секции написать так:
IIF((SELECT  flag  from uniq_sku WHERE IIF( a.country is null, b.country,a.country) = uniq_sku.country  AND  IIF( a.item is null, b.item,a.item) = uniq_sku.item) <>0, "Истина", "Ложь")  as flag
Ну, или Format вместо IIF, но тогда "пусто" (т.е. Null) так и будет пусто, а не "ложь".

Но на вопрос ответьте - зачем вам это именно в запросе? Где вы его используете?
27 янв 20, 12:45    [22067106]     Ответить | Цитировать Сообщить модератору
 Re: Изменить формат полей в запросе  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 59
Результат запроса выдергиваю в Эксель и для того, чтобы не делать ручное форматирование в экселе хотел, чтобы уже получался необходимый формат.
Больше автоматизации - меньше ручных операций :)
27 янв 20, 15:29    [22067235]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить