点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我需要创建一个SAP B1查询,该查询将列出最近三年进行过购买的业务合作伙伴卡的所有联系人。
我们需要以下数据:
从OCRD-名片名称,地址,城市,电话1
从OCPR-姓名,电话1,电子邮件(所有与OCRD的CardCode匹配的联系人)
当OCRD的CardCode在过去三年中有发票DocDate时
我做了什么:
选择唯一的T0。[CardName],T1。[Address] +','+ T1。[City],T1。[Phone1],T2。[Name],T2。[Tel1],T2。[E_MailL] FROM OINV T0内部JOIN OCRD T1 ON T0。[CardCode] = T1。[CardCode]内部JOIN OCPR T2 ON T0。[CntctCode] = T2。[CntctCode] WHERE year(T0。[DocDate])> = year(getdate( ))-3
这部分起作用。 它不显示所有业务伙伴的联系方式,但仅显示其中一些联系方式,我想由于内部联接的局限性,它只需要最近三年发票中实际列出的联系方式。
我尝试使用左/右外部联接组合,但是并没有太大变化,并不是所有的联系人都显示了。
任何人都可以帮忙吗?
谢谢!
亲爱的马里斯,
您的查询满足您的要求。 最好避免加入OCPR表获取联系代码。 如果某个BP发出了发票,但是在OCRD表中未插入其联系人姓名,则该BP可能不会在您的查询中列出。
选择唯一的T0。[CardName],T1。[Address] +','+ T1。[City],T1。[Phone1],T2。[Name],T2。[Tel1],T2。[E_MailL] ,(从OCPR t2中选择CntctCode,其中t2.CardCode = t0.CardCode)CntctCode
来自OINV T0内部JOIN OCRD T1 ON T0。[CardCode] = T1。[CardCode] WHERE year(T0。[DocDate])> = year(getdate())-3
感谢Prasannan,但这不起作用,因为子查询返回多个值(因为每个卡中有多个联系人)。
也许您还有其他想法?
谢谢。
尝试一下:
选择T0。" CardCode",T0。" CardName",T0。" Address",T0。" 城市",T1。" CntctCode",T1。"名称",T1。" Tel1",T1。" E_MailL"来自OCRD T0内联OCPR T1 ON T0。" CardCode" = T1。" CardCode"
< p> WHERE T1。" CntctCode" IN(从OINV S0 WHERE S0中选择DISTINCT S0。" CntctCode"。" DocDate" ='20190531')只需替换粗体/斜体 符合您过去三年的病情。
一周热门 更多>