好吧,我有2个名为“ A”和“ B”的表
其中一个表(A)在此记录中包含许多记录ı有一列包含“ SENDER_CONTACT_NUMBER”,这可能是来自同一发件人的发票过多。
其他表包含'SENDER_CONTACT_NUMBER'和'STATUS'(1-处于活动状态)(0-未处于活动状态),因此在此表中'SENDER_CONTACT_NUMBER'是唯一的,我想通过SQL查询联合2表'SENDER_CONTACT_NUMBER'和我想要为每个“ SENDER_CONTACT_NUMBER”创建2列。我想在表A中进行计数(我解决了第一部分,但第二个问题对我来说是真正的问题,因为B表“ SENDER_CONTACT_NUMBER”可能不在A表中,因此在这种情况下,我无法显示计数:(
表A
INVOICE_TYPE_CODE varchar no
SENDER_CONTACT_NUMBER varchar no
SENDER_IDENTIFIER varchar no
SENDER_NAME varchar no
RECEIVER_CONTACT varchar no
RECEIVER_IDENTIFIER varchar no
RECEIVER_NAME varchar no
表B
SENDER_CONTACT_NUMBER varchar no
URUN varchar no
BASTAR char no
BITTAR char no
STATUS smallint no
我想看的结果
第1列
联盟SENDER_CONTACT_NUMBER LIST BY STATUS = 1
第2列
对于第1列sender_contact_number中的每条记录,如果没有记录,则显示计数为0
答案 0 :(得分:0)
假设您要对表A中每个SENDER_CONTACT_NUMBER
的出现次数进行计数,包括来自B中在A中没有相应记录的记录,那么这应该起作用:
SELECT B.SENDER_CONTACT_NUMER, COUNT(A.INVOICE_TYPE_CODE) AS Invoices
FROM B
LEFT JOIN A ON B.SENDER_CONTACT_NUMER = A.SENDER_CONTACT_NUMER
WHERE B.STATUS = 1 -- Only include active contacts