mysql 联接两个不相关的表以查找记录

hkmswyz6  于 2023-02-28  发布在  Mysql
关注(0)|答案(1)|浏览(151)

我正在创建一个查询,该查询将查看当前仍有未清余额的以前记录的续订记录。
现在,我已经设法进行了一个查询,使子记录返回查看父记录。基本上,第一个查询要做的是遍历并查看已续订的记录,然后将其与以前的父记录到期日期进行比较。

Select BL1.RECORDID as RECIID, BL2.EXPIRATIONDATE as ParentRecordExpirationDate, 
        (DATEDIFF(DD,GETDATE(),BL2.ExpirationDate)*-1)as DAYSOVER 
from BLLICENSE BL1 
JOIN RECORD BL2 on BL1.RECORDPARENTID = BL2.RECORDID 
Where CONVERT(date,BL2.EXPIRATIONDATE) < GETDATE() 
    AND BL1.RECORDSTATUSID IN('Renewed',
        'Issued', 'In Review',
        'On Hold', 'Submitted', 
        'Fees Due')

现在,我已经处理了第一个复选框,我正在尝试找出如何让查询合并以下查询,以便我可以进行续订检查,并检查他们是否是未结发票/到期余额。

Select DISTINCT(BLL.RECORDID) 
from CAINVOICE CAI 
JOIN CAINVOICEFEE CAIF on CAIF.CAINVOICEID = CAI.CAINVOICEID
JOIN CACOMPUTEDFEE CACF on CACF.CACOMPUTEDFEEID = CAIF.CACOMPUTEDFEEID
JOIN RECORD BLLF on BLLF.CACOMPUTEDFEEID = CACF.CACOMPUTEDFEEID
JOIN RECORD BLL on BLL.RECORDID = BLLF.RECORDID
    AND CAI.CASTATUSID in (1,2,3,6,7,8))

我尝试使用这两者的并集,但遗憾的是,这并不起作用,因为“所有使用UNION、INTERSECT或EXCEPT操作符组合的查询在其目标列表中必须具有相同数量的表达式。”
我打算尝试连接表,但是在查询#2上使用Distinct选项,我觉得会导致这个想法失败。

imzjd6km

imzjd6km1#

我实际上解决了这个问题。我应该只采取简单的路线,使用查询设计器。
选择不同的BLICENSE。BLICENSEID来自BLICENSE内部联接BLICENSEFEE上的BLICENSEID。BLICENSEID = BLICENSEFEE。BLICENSEID内部联接BLICENSEFEE上的CACOMPUTEDFEEID。CACOMPUTEDFEEID = CACOMPUTEDFEE。CACOMPUTEDFEEID内部联接CACOMPUTEDFEE上的CAINVOICEFEE。CACOMPUTEDFEEID = CAINVOICEFEE。CACOMPUTEDFEEID内部联接CAINVOICEFEE上的CAINVOICE。CAINVOICEID = CAINVOICE。CAINVOICEID其中CAINVOICE。CASTATUSID在(“到期日”、"过期“、”过期“)且BLICENSE. BLICENSEPARENTID不为空且(CONVERT(日期,BLICENSE.发布日期)〈= CONVERT(日期,获取日期()))

相关问题