SQL question

Поиск
Список
Период
Сортировка
От Johnson, Shaunn
Тема SQL question
Дата
Msg-id 73309C2FDD95D11192E60008C7B1D5BB03FFFF5C@snt452.corp.bcbsm.com
обсуждение исходный текст
Список pgsql-general

Howdy:

Not sure if this is the correct group - let me now
if I should post elsewhere ...

Anyhow, I'm new with SQL.  I wrote a script that I *thought*
should work.  What I'm trying to do is query 5 tables from 5
different databases that have the same columns and collect all
of the information and append it into one file.  This is the script:

[script]

SELECT
C_CONTRACT_NUM AS CONTRACT,
C_MBR_NUM AS MBR_NUM,
C_CLASS AS CLASS,
MAX(D_END_DT) AS DENDDT
FROM database1.table1_CN2PCLAS V
GROUP BY C_CLASS, C_CONTRACT_NUM, C_MBR_NUM
HAVING MAX(D_END_DT)=(
        SELECT MAX(D_END_DT)
        FROM database1.table1_CN2PCLAS W
        WHERE V.C_CONTRACT_NUM = W.C_CONTRACT_NUM
        AND V.C_MBR_NUM = W.C_MBR_NUM
        AND D_END_DT >= '2000-01-01')
UNION
SELECT
C_CONTRACT_NUM AS CONTRACT,
C_MBR_NUM AS MBR_NUM,
C_CLASS AS CLASS,
MAX(D_END_DT) AS DENDDT
FROM database2.table1_CN2PCLAS V
GROUP BY C_CLASS, C_CONTRACT_NUM, C_MBR_NUM
HAVING MAX(D_END_DT)=(
        SELECT MAX(D_END_DT)
        FROM database2.table1_CN2PCLAS W
        WHERE V.C_CONTRACT_NUM = W.C_CONTRACT_NUM
        AND V.C_MBR_NUM = W.C_MBR_NUM
        AND D_END_DT >= '2000-01-01')
UNION
SELECT
C_CONTRACT_NUM AS CONTRACT,
C_MBR_NUM AS MBR_NUM,
C_CLASS AS CLASS,
MAX(D_END_DT) AS DENDDT
FROM database3.table1_CN2PCLAS V
GROUP BY C_CLASS, C_CONTRACT_NUM, C_MBR_NUM
HAVING MAX(D_END_DT)=(
        SELECT MAX(D_END_DT)
        FROM database3.table1_CN2PCLAS W
        WHERE D_END_DT >= '2000-01-01')
        WHERE V.C_CONTRACT_NUM = W.C_CONTRACT_NUM
        AND V.C_MBR_NUM = W.C_MBR_NUM
        AND D_END_DT >= '2000-01-01')
UNION
SELECT
C_CONTRACT_NUM AS CONTRACT,
C_MBR_NUM AS MBR_NUM,
C_CLASS AS CLASS,
MAX(D_END_DT) AS DENDDT
FROM database4.table1_CN2PCLAS V
GROUP BY C_CLASS, C_CONTRACT_NUM, C_MBR_NUM
HAVING MAX(D_END_DT)=(
        SELECT MAX(D_END_DT)
        FROM database4.table1_CN2PCLAS W
        WHERE V.C_CONTRACT_NUM = W.C_CONTRACT_NUM
        AND V.C_MBR_NUM = W.C_MBR_NUM
        AND D_END_DT >= '2000-01-01')
UNION
SELECT
C_CONTRACT_NUM AS CONTRACT,
C_MBR_NUM AS MBR_NUM,
C_CLASS AS CLASS,
MAX(D_END_DT) AS DENDDT
FROM database5.table1_CN2PCLAS V
GROUP BY C_CLASS, C_CONTRACT_NUM, C_MBR_NUM
HAVING MAX(D_END_DT)=(
        SELECT MAX(D_END_DT)
        FROM database5.table1_CN2PCLAS W
        WHERE V.C_CONTRACT_NUM = W.C_CONTRACT_NUM
        AND V.C_MBR_NUM = W.C_MBR_NUM
        AND D_END_DT >= '2000-01-01');

[/script]

But the error I'm getting is:

[error]

The use of the reserved word "WHERE" following "" is not valid.
Expected tokens may include:  "FOR WITH ORDER UNION EXCEPT QUERYNO OPTIMIZE".

[/error]

I'm not clear on the meaning of that error.  Can someone re-explain
what it's trying to say and why the query isn't working?

Thanks!

-X

В списке pgsql-general по дате отправления:

Предыдущее
От: "Dinesh Parikh"
Дата:
Сообщение: GoTo statement problem
Следующее
От: John fabiani
Дата:
Сообщение: how to get compound indexes