由5张表里查询数据,一个有点不太简单的查询,请高手指点。
A表 字段如下
CSEL_FILECODE CSEL_SELLTYPE RTP_ID(企业编码) CID_CODE BTO_ID ZIS_STORECODE CSEL_OUTMAN CSEL_OUTDATE(出库日期) CSEL_MONEYCONFIRM CSEL_REASON CSEL_CHECKMAN CSEL_CHECKDATE CSEL_VOUCHERPRINT DH_TYPE DH_ID ZT_YEARNUM ZT_TICKETNUM THIS_UNLOCK CSEL_ISCANCEL CSEL_ISWRITEDISK
A_SUB表 字段如下
CSLS_SEQUENCODE CSL_FILECODE CBI_INVOICECODE CSLS_STARTNUM(发票开始号码) CSLS_YEARNUM CSLS_ENDNUM(发票结束号码) RTP_ID(企业编码) CSLS_NUM CSLS_SUM
B表 字段如下
CSL_FILECODE RTP_ID(企业编码) BTO_ID CIS_STORECODE CSL_OUTID CSL_OUTDATE(领票日期) CSL_MONEYCONFIRM CSL_REASON CSL_CHECKMAN CIH_VOUCHERNUM CSL_VOUCHERPRINT CSL_BOOKPRINT CSL_DHID ZT_INVOICECODE ZT_TICKETNUM ZT_YEARNUM THIS_UNLOCK
B_SUB表 字段如下
CSEL_FILECODE CSELS_FILECODE ZBI_INVOICECODE ZIC_INVOICECODE CSELS_NUM CSELS_STARTNUM CSELS_ENDNUM CSELS_SUM(领购数量) CSELS_SPARENUM
C表 字段如下
RTP_ID(企业编码) RTP_NAME(企业名称)
先解释下逻辑关系
1、 A_SUB 就是A表的附表,单独关联这两张表可以查询出(举了2笔数据做例子)
RTP_ID(企业编码) CSEL_OUTDATE(出库日期) sum(CSLS_ENDNUM(发票结束号码)-CSLS_STARTNUM(发票开始号码)+1)
(这个是用发票结束号码-开始号码+1计算出来的)
123456 2013-12-23 50
123456 2013-12-25 90
2、B_SUB 就是B表的附表,单独关联这两张表可以查询出
RTP_ID(企业编码) CSL_OUTDATE(领票日期) CSELS_SUM(领购数量)
123456 2014-1-3 120
123456 2014-1-5 100
现在要求将以上数据组合到一起(A、B两个表中的出库日期和领票日期是不重复的)并且关联C表最终显示
企业编码 企业名称 日期 本次领票量
123456 友谊公司 2013-12-23 50
123456 友谊公司 2013-12-25 90
123456 友谊公司 2014-1-3 120
123456 友谊公司 2014-1-5 100
望高手指点,高分奖励。
------解决方案--------------------是这样吗:
select a1.RTP_ID,a2.CSEL_OUTDATE,SUM(C