我甚至不确定如何在主题中说出这一点。但是,我有一个SELECT语句,它从名为CONTACTS(F_ame,L_Name,Address,Email等)的SQL视图中提取信息。我有一个名为INVOICES的视图,其中包含联系人视图中成员的购买信息。请记住,INVOICES视图可以为每个成员多次购买不同的产品。这两个视图可以与ContactID密钥链接
我只需要在INVOICES视图中显示某个产品(EADP包)(如果已购买),该视图与购买它的会员在同一行。我还需要保留整个成员列表。因此,如果我使用WHERE子句仅提取该产品,它只会给我那些购买该产品的人。我需要保留整个成员列表,并且仍然有一个列,显示购买它的人的特定产品。希望有道理。
很抱歉,但有3个观看次数,而不是2.这是我到目前为止的观点:
SELECT Contact.FirstName, Contact.LastName, Contact.CFSDesignation, Contact.EMailAddress1, Contact.Telephone1, Contact.DefaultPriceLevelIdName
FROM Contact INNER JOIN
FilteredInvoice ON Contact.ContactId = FilteredInvoice.contactid INNER JOIN
FilteredInvoiceDetail ON FilteredInvoice.invoiceid = FilteredInvoiceDetail.invoiceid
WHERE (Contact.DefaultPriceLevelIdName = 'member') AND FilteredInvoiceDetail.productidname = 'eAudiology 2014 Unlimited On-Demand Package'
这样可以正常使用,但只会拉动购买包的人。我需要来自CONTACTS的整个会员列表(大约10,000条记录)以及显示上述产品的产品列,以供购买者使用。我相信是与连接有关,但不能理解它。
关闭,但它不喜欢关键字" ON":
另外。在你之前的回答中," C"和"我"用于?
SELECT Contact.FirstName, Contact.LastName, Contact.CFSDesignation, Contact.EMailAddress1, Contact.Telephone1, Contact.DefaultPriceLevelIdName
FROM Contact LEFT JOIN
FilteredInvoice ON Contact.ContactId = FilteredInvoice.contactid LEFT JOIN (SELECT FilteredInvoiceDetail.productidname
FROM FilteredInvoiceDetail
WHERE productidname = 'eAudiology 2014 Unlimited On-Demand Package') ON FilteredInvoice.invoiceid = FilteredInvoiceDetail.invoiceid
WHERE (Contact.DefaultPriceLevelIdName = 'member')
答案 0 :(得分:0)
SELECT *
FROM Contacts C
LEFT JOIN ( SELECT *
FROM Invoices
WHERE Product = 'EADP Package') I
ON C.ContactID = I.ContactID
答案 1 :(得分:0)
这最终对我有用:
SELECT DISTINCT Contact.ContactId,Contact.FirstName,Contact.LastName,Contact.CFSDesignation,Contact.EMailAddress1,Contact.DefaultPriceLevelIdName,productidname 从联系LEFT JOIN FilteredInvoice ON Contact.ContactId = FilteredInvoice.contactid LEFT JOIN(SELECT FilteredInvoiceDetail.productidname,FilteredInvoiceDetail.invoiceid FROM FilteredInvoiceDetail WHERE productidname =' eAudiology 2014无限按需套餐' OR productidname =' eAudiology 2014无限按需Pkg续订')I ON FilteredInvoice.invoiceid = I.invoiceid
WHERE(Contact.DefaultPriceLevelIdName =' member' OR DefaultPriceLevelIdName =' student')
按姓氏排序