[英]Query joining in sql server 2005
I have two queries like: 我有两个查询,例如:
SELECT PC_COMP_CODE,
PC_SL_LDGR_CODE,
PC_SL_ACNO ACCOUNT,
COUNT(PC_CHEQUE_NO) CHQS,
SUM(CONVERT(FLOAT, PC_AMOUNT)) CHQ_AMT
FROM GLAS_PDC_CHEQUES
WHERE PC_COMP_CODE = '1'
AND PC_DISCD IS NULL
GROUP BY PC_SL_LDGR_CODE,
PC_SL_ACNO ,PC_COMP_CODE
ORDER BY PC_SL_ACNO
--------------------------------------------------
SELECT COAD_PTY_FULL_NAME,PC_COMP_CODE, PC_SL_LDGR_CODE, PC_SL_ACNO, PC_DEPT_NO, PC_DOC_TYPE, PC_CHEQUE_NO, PC_BANK_AC_NO FROM GLAS_PTY_ADDRESS,GLAS_SBLGR_MASTERS,GLAS_PDC_CHEQUES WHERE
COAD_COMP_CODE = '1' AND SLMA_COMP_CODE = COAD_COMP_CODE AND SLMA_ADDR_ID = COAD_ADDR_ID
AND SLMA_LDGRCTL_CODE = PC_SL_LDGR_CODE AND PC_COMP_CODE=SLMA_COMP_CODE
AND SLMA_ACNO = PC_SL_ACNO
AND SLMA_LDGRCTL_YEAR = DBO.GLAS_VALIDATIONS_GET_OPEN_YEAR(PC_COMP_CODE)
If I execute first query alone I get 5 records... 如果我仅执行第一个查询,就会得到5条记录...
If I join the above two query like: 如果我加入上述两个查询,如:
SELECT
PC_COMP_CODE,
PC_SL_LDGR_CODE,
PC_SL_ACNO ACCOUNT,
COUNT(PC_CHEQUE_NO) CHQS,
SUM(CONVERT(FLOAT, PC_AMOUNT)) CHQ_AMT,
COAD_PTY_FULL_NAME
FROM GLAS_PDC_CHEQUES
LEFT OUTER JOIN GLAS_SBLGR_MASTERS
ON( SLMA_COMP_CODE=PC_COMP_CODE AND
SLMA_LDGRCTL_CODE = PC_SL_LDGR_CODE AND SLMA_ACNO = PC_SL_ACNO )
LEFT OUTER JOIN GLAS_PTY_ADDRESS ON( SLMA_COMP_CODE = COAD_COMP_CODE AND SLMA_ADDR_ID = COAD_ADDR_ID)
WHERE PC_COMP_CODE = '1'
AND PC_DISCD IS NULL AND SLMA_LDGRCTL_YEAR = DBO.GLAS_VALIDATIONS_GET_OPEN_YEAR(PC_COMP_CODE)
GROUP BY PC_SL_LDGR_CODE,
PC_SL_ACNO ,PC_COMP_CODE,COAD_PTY_FULL_NAME
ORDER BY PC_SL_ACNO
then I just get 2 records.... 那我只得到2条记录。
I need that 5 records to display after join..... How can I do it? 加入后,我需要显示5条记录.....我该怎么做?
I grepped all the fields in the first query to make it more readable and more likely that someone can make sense of things. 我在第一个查询中添加了所有字段,以使其更具可读性,并更有可能使人理解事物。 Unfortunately, I gave up at that point.
不幸的是,我当时放弃了。
Results below, but for what its worth, I'll take a shot in the dark and say that you want to join with a UNION . 结果如下,但不管它有什么价值,我都会在黑暗中开枪,说你想加入UNION 。
SELECT id, first_name, account, COUNT(pants) pants, SUM(CONVERT(FLOAT, cost)) amount
FROM table1
WHERE id = '1' AND discount IS NULL GROUP BY first_name, account ,id
ORDER BY account
SELECT full_name,id, first_name, account, department, coffee_pref, pants, acct_no
FROM table2,table3,table1
WHERE secret_code = '1'
AND public_code = secret_code
AND addr_id = phone_id
AND nickname = first_name
AND id=public_code
AND movie_rating = account
AND album_year = DBO.get_random_year(id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.