Объединение запросов с помощью Union Select - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь объединить два запроса с помощью Union Select, но я не могу найти, что я делаю неправильно ... Я использовал этот метод раньше без проблем, но должно быть что-то, чего я не делаюЯ понимаю, что это вызывает у меня проблемы.

Два запроса, которые я пытаюсь объединить, таковы:

SELECT Parejas.[ID Pareja], Parejas.NombrePareja AS [Nombre Pareja / Paciente], Parejas.FechaAlta AS [Fecha de alta], Count(Sesiones.[ID sesión]) AS [CuentaDeID sesión], Profesional.Nombre
FROM Paciente INNER JOIN (Profesional INNER JOIN (Parejas INNER JOIN Sesiones ON Parejas.[ID Pareja] = Sesiones.[ID Pareja]) ON Profesional.[ID Profesional] = Sesiones.[ID Profesional]) ON Paciente.[ID Paciente] = Parejas.Pacientes.Value
WHERE (((Parejas.FechaAlta)>[Formularios]![Consulta_duracion]![Texto15]))
GROUP BY Parejas.[ID Pareja], Parejas.NombrePareja, Parejas.FechaAlta, Profesional.Nombre;

И второй - это:

SELECT Parejas.[ID Pareja], Paciente.Nombre AS [Nombre Pareja / Paciente], Paciente.FechaAlta AS [Fecha de alta], Count(Sesiones.[ID sesión]) AS [CuentaDeID sesión], Profesional.Nombre
FROM (Profesional INNER JOIN (Paciente INNER JOIN Sesiones ON Paciente.[ID Paciente] = Sesiones.[ID Paciente]) ON Profesional.[ID Profesional] = Sesiones.[ID Profesional]) INNER JOIN Parejas ON Paciente.[ID Paciente] = Parejas.Pacientes.Value
WHERE (((Paciente.FechaAlta)>[Formularios]![Consulta_duracion]![Texto15]))
GROUP BY Parejas.[ID Pareja], Paciente.Nombre, Paciente.FechaAlta, Profesional.Nombre;

Я использую предложение Union для объединения обоих запросов, но всегда получаю следующее сообщение об ошибке:

"Ваш запрос не включает указанное выражение 'ID Pareja" как часть агрегатной функции "

Может быть, кто-нибудь из вас знает, в чем проблема?

Большое вам спасибо!

edit: я прилагаю изображение со всеми таблицами и связями.Вы можете видеть, что "Paciente" и "Sesiones" являются основными таблицами, над которыми спроектированы все остальные. введите описание изображения здесь

1 Ответ

0 голосов
/ 24 ноября 2018

Я думаю, что следующее должно дать правильный UNION запрос -

SELECT u.*
FROM
(
    SELECT 
        Parejas.[ID Pareja], 
        Parejas.NombrePareja AS [Nombre Pareja / Paciente], 
        Parejas.FechaAlta AS [Fecha de alta], 
        Count(Sesiones.[ID sesión]) AS [CuentaDeID sesión], 
        Profesional.Nombre
    FROM 
        Paciente INNER JOIN 
        (
            Profesional INNER JOIN 
            (
                Parejas INNER JOIN Sesiones ON 
                Parejas.[ID Pareja] = Sesiones.[ID Pareja]
            ) 
            ON Profesional.[ID Profesional] = Sesiones.[ID Profesional]
        ) 
        ON Paciente.[ID Paciente] = Parejas.Pacientes.Value
    WHERE 
        Parejas.FechaAlta > [Formularios]![Consulta_duracion]![Texto15]
    GROUP BY 
        Parejas.[ID Pareja], 
        Parejas.NombrePareja, 
        Parejas.FechaAlta, 
        Profesional.Nombre
) u
UNION ALL
SELECT v.*
FROM
(
    SELECT 
        Parejas.[ID Pareja], 
        Paciente.Nombre AS [Nombre Pareja / Paciente], 
        Paciente.FechaAlta AS [Fecha de alta], 
        Count(Sesiones.[ID sesión]) AS [CuentaDeID sesión], 
        Profesional.Nombre
    FROM 
        (
            Profesional INNER JOIN 
            (
                Paciente INNER JOIN Sesiones ON 
                Paciente.[ID Paciente] = Sesiones.[ID Paciente]
            )
            ON Profesional.[ID Profesional] = Sesiones.[ID Profesional]
        )
        INNER JOIN Parejas ON 
        Paciente.[ID Paciente] = Parejas.Pacientes.Value
    WHERE 
        Paciente.FechaAlta > [Formularios]![Consulta_duracion]![Texto15]
    GROUP BY 
        Parejas.[ID Pareja], 
        Paciente.Nombre, 
        Paciente.FechaAlta, 
        Profesional.Nombre
) v

(конечно, не проверено)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...