Sql server 连接两个表

Sql server 连接两个表,sql-server,Sql Server,如何连接这两个查询 SELECT GLMA_COMP_CODE COMP, GLMA_ACCT_CODE ACCOUNT_NO, GLMA_DEPT_NO DEPT, GLMA_ACCT_NAME ACCOUNT_NAME FROM GLAS_GL_MASTERS WHERE GLMA_COMP_CODE = @COMP_CODE AND GLMA_YEAR = CONVERT(NUMERIC(8, 2), DATEPART(YYYY, @DATE_FROM)) AND GLMA_ACCT_C

如何连接这两个查询

SELECT
GLMA_COMP_CODE COMP,
GLMA_ACCT_CODE ACCOUNT_NO,
GLMA_DEPT_NO DEPT,
GLMA_ACCT_NAME ACCOUNT_NAME
FROM GLAS_GL_MASTERS 
WHERE GLMA_COMP_CODE = @COMP_CODE
AND GLMA_YEAR = CONVERT(NUMERIC(8, 2), DATEPART(YYYY, @DATE_FROM))
AND GLMA_ACCT_CODE BETWEEN ISNULL(@ACCT_CODE_FROM, GLMA_ACCT_CODE) AND 
ISNULL(@ACCT_CODE_TO, GLMA_ACCT_CODE)
ORDER BY GLMA_ACCT_CODE 


根据所提供的信息,如下所示:

  SELECT t.gltr_comp_code,
         t.gltr_acct_code,
         t.gltr_dept_no,
         m.glma_acct_name
         CAST(t.gltr_pstng_type AS VARCHAR) + CAST(t.gltr_pstng_no AS VARCHAR) REF_NO,
         CAST(t.gltr_doc_code AS VARCHAR) + CAST(t.gltr_our_doc_no AS VARCHAR) DOC_NO,
         t.gltr_doc_date DOC_DATE,
         t.gltr_doc_narr NARRATIVE,
         t.gltr_pstng_date,
         CASE SIGN(t.gltr_tran_amt) WHEN + 1 THEN t.gltr_tran_amt ELSE 0 END DEBIT,
         CASE SIGN(t.gltr_tran_amt) WHEN - 1 THEN t.gltr_tran_amt ELSE 0 END CREDIT,
         t.gltr_tran_amt AMOUNT,
         t.gltr_fc_code FC_CODE,
         t.gltr_fc_amt FC_AMOUNT
    FROM GLAS_GL_TRANSACTIONS t
    JOIN GLAS_GL_MASTERS m ON m.glma_comp_code = t.gltr_comp_code
                          AND m.glma_acct_code = t.gltr_acct_code
                          AND m.glma_dept_no = t.glma_dept_no
   WHERE t.gltr_pstng_date BETWEEN COALESCE(@DATE_FROM, t.gltr_pstng_date) AND COALESCE(@DATE_TO, t.gltr_pstng_date)
     AND m.glma_comp_code = @COMP_CODE
     AND m.glma_year = CONVERT(NUMERIC(8, 2), DATEPART(YYYY, @DATE_FROM))
     AND m.glma_acct_code BETWEEN COALESCE(@ACCT_CODE_FROM, t.glma_acct_code) AND COALESCE(@ACCT_CODE_TO, t.glma_acct_code)
ORDER BY t.gltr_acct_code, t.gltr_pstng_date, t.gltr_doc_code, t.gltr_our_doc_no

我们不知道您的数据模型-您必须告诉我们这两个表之间的公共列。
  SELECT t.gltr_comp_code,
         t.gltr_acct_code,
         t.gltr_dept_no,
         m.glma_acct_name
         CAST(t.gltr_pstng_type AS VARCHAR) + CAST(t.gltr_pstng_no AS VARCHAR) REF_NO,
         CAST(t.gltr_doc_code AS VARCHAR) + CAST(t.gltr_our_doc_no AS VARCHAR) DOC_NO,
         t.gltr_doc_date DOC_DATE,
         t.gltr_doc_narr NARRATIVE,
         t.gltr_pstng_date,
         CASE SIGN(t.gltr_tran_amt) WHEN + 1 THEN t.gltr_tran_amt ELSE 0 END DEBIT,
         CASE SIGN(t.gltr_tran_amt) WHEN - 1 THEN t.gltr_tran_amt ELSE 0 END CREDIT,
         t.gltr_tran_amt AMOUNT,
         t.gltr_fc_code FC_CODE,
         t.gltr_fc_amt FC_AMOUNT
    FROM GLAS_GL_TRANSACTIONS t
    JOIN GLAS_GL_MASTERS m ON m.glma_comp_code = t.gltr_comp_code
                          AND m.glma_acct_code = t.gltr_acct_code
                          AND m.glma_dept_no = t.glma_dept_no
   WHERE t.gltr_pstng_date BETWEEN COALESCE(@DATE_FROM, t.gltr_pstng_date) AND COALESCE(@DATE_TO, t.gltr_pstng_date)
     AND m.glma_comp_code = @COMP_CODE
     AND m.glma_year = CONVERT(NUMERIC(8, 2), DATEPART(YYYY, @DATE_FROM))
     AND m.glma_acct_code BETWEEN COALESCE(@ACCT_CODE_FROM, t.glma_acct_code) AND COALESCE(@ACCT_CODE_TO, t.glma_acct_code)
ORDER BY t.gltr_acct_code, t.gltr_pstng_date, t.gltr_doc_code, t.gltr_our_doc_no