Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Объединение таблиц для создания отчета   Найти похожие ветки 

 
TimScorp ©   (2006-04-03 18:55) [0]

Доброго времени суток!!!

Вопрос в следующем:

Имеем три таблицы в Access с полями:

Таблица 1: Fam - текст, AP - числовое, Date - Дата
Таблица 2: Fam - текст, AM - числовое, Date - Дата
Таблица 3: Fam - текст, SV - числовое, Date - Дата


 
TimScorp ©   (2006-04-03 18:56) [1]

Допустим в Таблице 1 данные:

Иванов      1     31.03.2006
Петров      1     30.03.2006
Иванов      1     01.04.2006
Сидоров    1     30.03.2006
Иванов      1     01.04.2006
Сидоров    1     02.04.2006

В Таблице 2:

Сидоров     1    30.03.2006
Петров       1    31.03.2006

В Таблице 3:

Иванов      1    01.04.2006


 
TimScorp ©   (2006-04-03 18:56) [2]

Теперь нужно создать отчет (FreeReport) что бы была таблица вида:

 Fam             AP           AM           SV
Иванов           3             0             1
Петров           1             1             0
Сидоров         2             1             0
Итого         6            2             1            

Мне приходится проходить по полям всех трех таблиц, суммировать данные и заносить их в четвертую таблицу в которой есть поля : Fam, AP, AM, SV и заносить туда данные.
Можно ли это сделать проще???

С уважением TimScorp.


 
TimScorp ©   (2006-04-03 20:35) [3]

Удалено модератором
Примечание: Создание пустых соощений


 
Johnmen ©   (2006-04-03 21:37) [4]

Запрос и запроса работает?


 
sniknik ©   (2006-04-03 22:18) [5]

вот так.

SELECT a1.Fam, AP, AM, SV FROM
((SELECT Fam, Sum(AP) AS AP  FROM T1 GROUP BY Fam) AS a1
LEFT JOIN
(SELECT Fam, Sum(AM) AS AM FROM T2 GROUP BY Fam) AS a2 ON a1.Fam = a2.Fam)
LEFT JOIN
(SELECT Fam, Sum(SV) AS SV FROM T3 GROUP BY Fam) AS a3
ON a1.Fam = a3.Fam


будет похоже...


 
TimScorp ©   (2006-04-03 22:24) [6]

ща попробую

С уважением TimScorp


 
Johnmen ©   (2006-04-03 22:42) [7]

Тогда почему бы не так?

SELECT Fam, SUM(F) FROM
(SELECT Fam, AP AS F FROM T1
UNION ALL
SELECT Fam, AM AS F FROM T2
UNION ALL
SELECT Fam, SV AS F FROM T3) AS TT
GROUP BY Fam


 
sniknik ©   (2006-04-03 23:12) [8]

можно, но тогда так, чтобы было похоже

SELECT Fam, Sum(AP) AS AP, Sum(AM) AS AM, Sum(SV) AS SV FROM
(SELECT Fam,AP,0 AS AM,0 AS SV FROM T1
UNION ALL
SELECT Fam,0,AM,0 FROM T2
UNION ALL
SELECT Fam,0,0,SV FROM T3)  AS tt
GROUP BY Fam


 
Johnmen ©   (2006-04-03 23:18) [9]


> sniknik ©   (03.04.06 23:12) [8]


Да-да...



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
15-1143208588
Ketmar
2006-03-24 16:56
2006.04.16
промеждупрочим о "падокавскам" языке


2-1143649954
tort
2006-03-29 20:32
2006.04.16
Как установить коррдинаты курсора в МЕМО?


15-1143033870
Nikolay M.
2006-03-22 16:24
2006.04.16
Отмодерировали по полной


2-1144192096
Tester83
2006-04-05 03:08
2006.04.16
Проблема со шрифтами


9-1127832954
Chuvak
2005-09-27 18:55
2006.04.16
Эффекты и синхронизация в OpenGL