如何调用SQL查询并从另一个表传递参数?

时间:2017-05-05 08:17:13

标签: sql ms-access-2010

我有一个复杂的sql查询,名为qryARAT2B_EXT。

SELECT
   * 
FROM
   (
      SELECT
         * 
      FROM
         (
            SELECT
               *,
               firstStudy,
               ABS(DATEDIFF('d', firstStudy, Check_Date)) as diff 
            FROM
               (
                  SELECT
                     *,
                     (
                        SELECT
                           TOP 1 Check_Date 
                        FROM
                           qryARAT2B 
                        WHERE
                           PATNR = [PАРАМ] 
                        ORDER BY
                           Check_Date 
                     )
                     AS firstStudy 
                  FROM
                     (
                        SELECT
                           * 
                        FROM
                           qryARAT2B 
                        WHERE
                           PATNR = [PАРАМ]
                     )
                     AS myPatientsWithStudy 
               )
               AS myPatientsFirstStudy 
         )
      WHERE
         diff = 0
   )
   AS T1 
   LEFT JOIN
      (
         SELECT
            * 
         FROM
            (
               SELECT
                  *,
                  firstStudy,
                  ABS(DATEDIFF('d', firstStudy, Check_Date)) as diff 
               FROM
                  (
                     SELECT
                        *,
                        (
                           SELECT
                              TOP 1 Check_Date 
                           FROM
                              qryARAT2B 
                           WHERE
                              PATNR = [PАРАМ] 
                           ORDER BY
                              Check_Date 
                        )
                        AS firstStudy 
                     FROM
                        (
                           SELECT
                              * 
                           FROM
                              qryARAT2B 
                           WHERE
                              PATNR = [PАРАМ] 
                        )
                        AS myPatientsWithStudy 
                  )
                  AS myPatientsFirstStudy 
            )
         WHERE
            diff = 4
      )
      As T2 
      ON T1.PATNR = T2.PATNR

当我在ms-access中打开它时,它会询问[PARAM]的值并产生结果。

我有一张病人表。     tblPatient与列:     PATNR和s.o。

包含患者的PATNR:

000001
000002
...
XXXXXX

我需要编写sql来同时计算所有PATNR的数据。 像这样的东西:

SELECT (SELECT * FROM qryARAT2B_EXT WHERE [PARAM] = PATNR) from tblPatient

但ms-access不接受它。我无法从SQL传递参数到qryARAT2B_EXT。在ms-access中是否有任何特定的语法?

0 个答案:

没有答案