Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Два перекр запроса в один A2002
 
 автор: Дядя Федор   (02.09.2010 в 14:16)   личное сообщение
 
 

Таблица1(PLAN)
Id Nomer Data Kol
1 1 01.01.2010 1
2 2 01.02.2010 10
3 10 01.01.2010 20

Таблица2 (FACT)
Id Nomer Data Kol
1 1 01.02.2010 1
2 2 05.02.2010 5
3 2 05.02.2010 5
4 10 01.02.2010 5
5 10 05.02.2010 15

Так как-то

Надо получить отчет по двум перекрестным запросам с даты по дату
Заголовки столбцов - даты
Данные
1 строка - факт
2 строка - план

Че-то я кроме промежуточной временной таблицы ничего не могу придумать.
А запросами ( 2 перекрестных объединить в один с добавлением чего нет)?
Если путано, прощенья просим, голова очень болит...

Два запроса выглядят примерно так
[code]
TRANSFORM ....
SELECT ....
FROM Таблицаi
GROUP BY Таблицаi.Номер
....PIVOT Format([Data],"Short Date") In "31.08.2010","01.09.2010","02.09.2010","03.09.2010","04.09.2010"");
[code/]
где множество для IN задается.

  Ответить  
 
 автор: Lukas   (02.09.2010 в 14:55)   личное сообщение
 
 

qdfU (вкратце):

SELECT ID, Nomer, Data, Kol, "План" as f1
FROM PLAN
UNION ALL 
SELECT ID, Nomer, Data, Kol, "Факт" as f1
FROM FACT;

Тут хорошо-бы сделать выборки из интересующего диапазона дат, коль скоро он все-равно PIVOT-ом задается.
qdfX (вкратце):

TRANSFORM Sum(qdfU.Kol) AS [Sum-Kol]
SELECT qdfU.Nomer, qdfU.f1' qdfU.f1 необязательно
FROM qdfU
GROUP BY qdfU.Nomer, qdfU.f1
PIVOT ....;

  Ответить  
 
 автор: Дядя Федор   (02.09.2010 в 16:20)   личное сообщение
 
 

Слетела серверная база. Аврал. Спасибо за ответ. Но проверю позже...

  Ответить  
 
 автор: Дядя Федор   (03.09.2010 в 11:08)   личное сообщение
21 Кб.
 
 

Это немного не-то.
Сервер все правим.. Но оторвался. Сделал примерчик.
Результаты запросов записал в таблицы. Что получается и что хочу.
Чувствую что надо использовать запрос на повторяющиеся записи по P и О. Но что-то запутался.
Гдяньте кому не лень. В примере окрыть форму1.
До этого я делал так. Создавал вр.таблицу и проверял наличие и добавлял программно.
Но стремно это как-то.

  Ответить  
 
 автор: Explorer   (03.09.2010 в 11:59)   личное сообщение
 
 

а вот если сделать таблицу календарь, то задача упростится

  Ответить  
 
 автор: Дядя Федор   (03.09.2010 в 12:07)   личное сообщение
 
 

есть такая и что

  Ответить  
 
 автор: Explorer   (03.09.2010 в 12:47)   личное сообщение
 
 

в перекресном запросе будет фиксированное количество полей - по нему легко построить запросы на выборку и отчеты

  Ответить  
 
 автор: Дядя Федор   (03.09.2010 в 13:01)   личное сообщение
 
 

Так не в этом проблема. И какая разница фиксированное или нет - это легко решается.
Задача в другом. Совместить два перекр.запроса у которых полей по датам одинаково, а строк данных нет.
Опять же, повторюсь - кодом решение есть. Хотелось бы элегантными запросами.

  Ответить  
 
 автор: Дядя Федор   (03.09.2010 в 14:25)   личное сообщение
 
 


Решил
Запрос4_NO_IN:
SELECT Tbl_UNION.IdSchPoz, Tbl_UNION.IdPrice, Tbl_UNION.f1
FROM Tbl_UNION
WHERE (((Tbl_UNION.IdSchPoz) Not In (SELECT [IdSchPoz] FROM [Tbl_UNION] As Tmp GROUP BY [IdSchPoz],[IdPrice] HAVING Count(*)>1 And [IdPrice] = [Tbl_UNION].[IdPrice])));

Запрос5

INSERT INTO Tbl_UNION ( IdSchPoz, IdPrice, f1 )
SELECT Запрос4_NO_IN.IdSchPoz, Запрос4_NO_IN.IdPrice, ZAMENA([f1]) AS Выражение1
FROM Запрос4_NO_IN;


ТЕМА ЗАКРЫТА - ВСЕМ СПСБ

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList