我在使查询像我需要的那样工作时遇到问题。我需要为邮件制作一张标签,只希望选择没有电子邮件地址的人。另外,我只想向每个地址/家庭发送1个邮件。以下select语句返回我需要的所有字段。
SELECT [Family Members].[Family ID]
,[Family Members].[First Name]
,[Family Members].[Last Name]
,[Family Members].Email
,[Master Record].[Address 1]
,[Master Record].[Address 2]
,[Master Record].City
,[Master Record].STATE
,[Master Record].Zipcode
FROM [Master Record]
LEFT JOIN [Family Members]
ON [Master Record].[Family ID] = [Family Members].[Family ID];
现在来谈谈我的桌子。“家庭ID”是密钥,每个唯一的家庭ID都有一个唯一的地址。但是,每个家庭的[家庭成员]表中都包含多个成员,每个家庭成员可能/可能没有电子邮件地址。如果有家庭成员列出了电子邮件地址,我不想发送纸质邮件,而是希望将他们从表格中删除。我也不想在基于“家庭ID”的查询中看到多个结果
因此,为清楚起见,此查询的结果应具有唯一的“家庭ID”值,并且没有带有电子邮件地址的家庭成员。
我希望这是可能的。谢谢。
以下似乎对我有用。尽管我对使用所有Max()函数感到有些不安。我将继续在此处发布,看看有人是否有更优雅的解决方案。
SELECT [Master Record].[Family ID], Max([Master Record].[Last Name]) AS [MaxOfLast Name],
Max([Master Record].[Address 1]) AS [MaxOfAddress 1], Max([Master Record].[Address 2]) AS
[MaxOfAddress 2], Max([Master Record].City) AS MaxOfCity, Max([Master Record].State) AS
MaxOfState, Max([Master Record].Zipcode) AS MaxOfZipcode, Max([Family Members].Email) AS
MaxOfEmail
FROM [Master Record] LEFT JOIN [Family Members] ON [Master Record].[Family ID] = [Family
Members].[Family ID]
GROUP BY [Master Record].[Family ID]
HAVING (((Count([Family Members].Email))=0));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句