主题:请哪位高手帮我解释一下下面的代码,急!
SELECT COALESCE(T00.IN_NO,T01.IN_NO) IN_NO
,COALESCE(T00.IN_AGENT,T01.IN_AGENT) IN_AGENT
,COALESCE(T00.IN_DEPT,T01.IN_DEPT) IN_DEPT
,COALESCE(T00.IN_KIND,T01.IN_KIND) IN_KIND
,COALESCE(T00.IN_DATE,T01.IN_DATE) IN_DATE
,COALESCE(T00.IN_DSDT,T01.IN_DSDT) IN_DSDT
,COALESCE(T00.PAT_NAME,T01.PAT_NAME) PAT_NAME
,SUM(ISNULL(T00.TOT,0)+ISNULL(T01.TOT,0)) TOT
FROM
(SELECT 1 KIND,IN_NO,PAT_NAME,IN_AGENT,IN_DEPT,IN_KIND,IN_DATE,IN_DSDT,SUM(IN_QTY*IN_PRICE) AS TOT
FROM BS_IN_MONEY INNER JOIN BS_PATIENT_NAME ON IN_DEPT=PAT_DEPT AND IN_AGENT=PAT_ID
WHERE IN_DEPT = :dept AND IN_AGENT = :pat AND IN_DSDT IS NULL
GROUP BY IN_NO,IN_AGENT,PAT_NAME,IN_DEPT,IN_DSDT,IN_DATE,IN_KIND) AS T00
FULL JOIN
(SELECT 2 KIND,IN_NO,PAT_NAME,IN_AGENT,IN_DEPT,IN_KIND,IN_DATE,IN_DSDT,SUM(IN_MONEY) AS TOT
FROM BS_IN_MONEY_N INNER JOIN BS_PATIENT_NAME ON IN_DEPT=PAT_DEPT AND IN_AGENT=PAT_ID
WHERE IN_DEPT = :dept AND IN_AGENT =:pat AND IN_DSDT IS NULL
GROUP BY IN_NO,IN_AGENT,PAT_NAME,IN_DEPT,IN_DSDT,IN_DATE,IN_KIND) AS T01
ON T01.KIND=T00.KIND
GROUP BY COALESCE(T00.IN_NO,T01.IN_NO)
,COALESCE(T00.IN_AGENT,T01.IN_AGENT)
,COALESCE(T00.IN_DEPT,T01.IN_DEPT)
,COALESCE(T00.IN_KIND,T01.IN_KIND)
,COALESCE(T00.IN_DATE,T01.IN_DATE)
,COALESCE(T00.IN_DSDT,T01.IN_DSDT)
,COALESCE(T00.PAT_NAME,T01.PAT_NAME)
,COALESCE(T00.IN_AGENT,T01.IN_AGENT) IN_AGENT
,COALESCE(T00.IN_DEPT,T01.IN_DEPT) IN_DEPT
,COALESCE(T00.IN_KIND,T01.IN_KIND) IN_KIND
,COALESCE(T00.IN_DATE,T01.IN_DATE) IN_DATE
,COALESCE(T00.IN_DSDT,T01.IN_DSDT) IN_DSDT
,COALESCE(T00.PAT_NAME,T01.PAT_NAME) PAT_NAME
,SUM(ISNULL(T00.TOT,0)+ISNULL(T01.TOT,0)) TOT
FROM
(SELECT 1 KIND,IN_NO,PAT_NAME,IN_AGENT,IN_DEPT,IN_KIND,IN_DATE,IN_DSDT,SUM(IN_QTY*IN_PRICE) AS TOT
FROM BS_IN_MONEY INNER JOIN BS_PATIENT_NAME ON IN_DEPT=PAT_DEPT AND IN_AGENT=PAT_ID
WHERE IN_DEPT = :dept AND IN_AGENT = :pat AND IN_DSDT IS NULL
GROUP BY IN_NO,IN_AGENT,PAT_NAME,IN_DEPT,IN_DSDT,IN_DATE,IN_KIND) AS T00
FULL JOIN
(SELECT 2 KIND,IN_NO,PAT_NAME,IN_AGENT,IN_DEPT,IN_KIND,IN_DATE,IN_DSDT,SUM(IN_MONEY) AS TOT
FROM BS_IN_MONEY_N INNER JOIN BS_PATIENT_NAME ON IN_DEPT=PAT_DEPT AND IN_AGENT=PAT_ID
WHERE IN_DEPT = :dept AND IN_AGENT =:pat AND IN_DSDT IS NULL
GROUP BY IN_NO,IN_AGENT,PAT_NAME,IN_DEPT,IN_DSDT,IN_DATE,IN_KIND) AS T01
ON T01.KIND=T00.KIND
GROUP BY COALESCE(T00.IN_NO,T01.IN_NO)
,COALESCE(T00.IN_AGENT,T01.IN_AGENT)
,COALESCE(T00.IN_DEPT,T01.IN_DEPT)
,COALESCE(T00.IN_KIND,T01.IN_KIND)
,COALESCE(T00.IN_DATE,T01.IN_DATE)
,COALESCE(T00.IN_DSDT,T01.IN_DSDT)
,COALESCE(T00.PAT_NAME,T01.PAT_NAME)