|
|
|
| Таблица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 задается. | |
|
| |
|
|
|
| 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 ....;
|
| |
|
| |
|
|
|
| Слетела серверная база. Аврал. Спасибо за ответ. Но проверю позже... | |
|
| |
|
21 Кб. |
|
| Это немного не-то.
Сервер все правим.. Но оторвался. Сделал примерчик.
Результаты запросов записал в таблицы. Что получается и что хочу.
Чувствую что надо использовать запрос на повторяющиеся записи по P и О. Но что-то запутался.
Гдяньте кому не лень. В примере окрыть форму1.
До этого я делал так. Создавал вр.таблицу и проверял наличие и добавлял программно.
Но стремно это как-то. | |
|
| |
|
|
|
| а вот если сделать таблицу календарь, то задача упростится | |
|
| |
|
|
|
| есть такая и что | |
|
| |
|
|
|
| в перекресном запросе будет фиксированное количество полей - по нему легко построить запросы на выборку и отчеты | |
|
| |
|
|
|
| Так не в этом проблема. И какая разница фиксированное или нет - это легко решается.
Задача в другом. Совместить два перекр.запроса у которых полей по датам одинаково, а строк данных нет.
Опять же, повторюсь - кодом решение есть. Хотелось бы элегантными запросами. | |
|
| |
|
|
|
|
Решил
Запрос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;
|
ТЕМА ЗАКРЫТА - ВСЕМ СПСБ | |
|
| |