powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / UNION SELECT
10 сообщений из 35, страница 2 из 2
UNION SELECT
    #32526808
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет проблем
...
Рейтинг: 0 / 0
UNION SELECT
    #32526824
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)
...
Рейтинг: 0 / 0
UNION SELECT
    #32533089
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать тоже самое но только с двумя таблицами?
Т.е. общие счета в одной таблице, а списанные в другой.

Напоминаю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
BILL_ID / ... / BILL_ON    
1      ...        - (общий счет)    
-      ...        1 (текущий счет, списанный на общий)    
-      ...        1    
-      ...        1    
2      ...        -    
-      ...        2    
-      ...        2    
-      ...        2
Т.е. после общего счета должны следовать списанные на него текущие счета
...
Рейтинг: 0 / 0
UNION SELECT
    #32533108
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну дык - вот тут как раз UNION и нужен
Только наверное UNION ALL

что-то типа

Select BILL_ID, ..., Null AS BILL_ON From tbl1
UNION ALL
Select Null, ..., BILL_ON From tbl2

И этот запрос уже используешь в качестве соурса для того, что было раньше :)
...
Рейтинг: 0 / 0
UNION SELECT
    #32533112
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо :)
...
Рейтинг: 0 / 0
UNION SELECT
    #32533192
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что получается.
Запрос "ПАРТНЕРЫ_Report_1_recordsource":
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT Bill_charge.BILL_ID, Bill_charge.OperID, Bill_charge.[Реф №], 
Bill_charge.Дата1, null as Дата2, Bill_charge.Наименование, Bill_charge.Эквивалент1, Bill_charge.BILL_ON
FROM Bill_charge
where bill_charge.bill_id is not null
UNION ALL SELECT Bank.BILL_ID, Bank.OperID, Bank.[Реф №],null,  Bank.Дата2, 
Bank.Наименование, Bank.Эквивалент1, Bank.BILL_ON
FROM Bank
where bank.bill_on is not null;

Основной запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT b.BILL_ID, b.OperID,[Реф №], b.Дата1, b.Наименование, b.Эквивалент1, null as   Эквивалент2, 
null as bill_id, b.BILL_ON,  1  as a, 
IIf(b.[bill_id] Is not  Null,b.[BILL_ID],b.[Реф №]) as numb
FROM ПАРТНЕРЫ_Report_1_recordsource as b

WHERE ((([b.bill_id] Is Null And [b.bill_on] Is Null)=False) And 
((IIf([b.bill_id] Is Not Null,b.[дата1]>=[forms]![партнеры_договор_поставщики]![fld_DateS2] And 
b.дата1<[forms]![партнеры_договор_поставщики]![fld_DatePo2],True))<>False) And 
((IIf([b.bill_on] Is Not Null,b.[дата2]>=[forms]![партнеры_договор_поставщики]![fld_Dates2] And 
b.дата2<[forms]![партнеры_договор_поставщики]![fld_DatePo2],True))<>False))

ORDER BY IIf(IsNull(b.[bill_on]),b.[bill_id],b.[bill_on]), IIf(IsNull(b.[bill_on]), 0 , 1 )

UNION ALL SELECT null, d.OperID , d.[Реф №] , d.Дата2 , d.Наименование , 
null,d.Эквивалент2 , d.REF_ON , null,  0  as a, IIf(d.[bill_id] Is Not Null,d.[BILL_ID],d.[Реф №]) as numb
FROM Bank as d

where (d.[реф №] = [forms]![партнеры_договор_поставщики]![fld_ref]) and
 (d.эквивалент1 is null) and (d.[дата2]>=[forms]![партнеры_договор_поставщики]![fld_Dates2] And 
d.дата2<[forms]![партнеры_договор_поставщики]![fld_DatePo2])
ORDER BY a;
Первый запрос работает нормально (данные представляются в том виде, который я выше описывал)
При добавлении UNION SELECT ... данные первого запроса перемешываются:
все текущие счета расположены между общими (примерно посередине)
Что я не такделаю?
...
Рейтинг: 0 / 0
UNION SELECT
    #32533200
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORDER BY IIf(IsNull(b.[bill_on]),b.[bill_id],b.[bill_on]), IIf(IsNull(b.[bill_on]),0,1)

надо ко внешнему запросу вешать!
...
Рейтинг: 0 / 0
UNION SELECT
    #32533211
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Bill_charge.BILL_ID as a, Bill_charge.OperID, Bill_charge.[Реф №], Bill_charge.Дата1, null as Дата2,
Bill_charge.Наименование, Bill_charge.Эквивалент1, Bill_charge.BILL_ON as b
FROM Bill_charge
where bill_charge.bill_id is not null
UNION ALL SELECT Bank.BILL_ID as a, Bank.OperID, Bank.[Реф №],null, 
 Bank.Дата2, Bank.Наименование, Bank.Эквивалент1, Bank.BILL_ON as b
FROM Bank
where bank.bill_on is not null
ORDER BY IIf(IsNull(b),a,b), IIf(IsNull(a), 0 , 1 )
Появляется ошибка: В выражение ORDER BY IIf(IsNull(b),a,b) включены поля, не выбранные в запросе
...
Рейтинг: 0 / 0
UNION SELECT
    #32533273
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надо ко внешнему запросу вешать!
Может есть иные выходы из подожения?
...
Рейтинг: 0 / 0
UNION SELECT
    #32533786
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не городить огород типа

Из одной таблицы (запроса) берем BILL_ID, а вместо BILL_ON пишем Null; из другой таблицы (запроса) наоборот.

А просто взять и все в одно поле слить, т.е. в BILL_ID
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / UNION SELECT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]