我们正在清理共享电子邮件地址的帐户数据库。一些电子邮件地址用于多达 20 个帐户,但我们正在迁移到不允许这样做的新系统。
我在这里要做的是创建一个电子邮件地址列表,计算它们的使用次数以及第三列,其中包含一个包含帐户详细信息的 HTML 表。这些表格将通过电子邮件发送到相关地址,要求他们修复帐户。
就其本身而言,该功能可以正常工作:
SELECT MembershipNumber td, Username td, FirstName td, Lastname td, Telephone td, Mobile td
FROM [dbo].[DuplicateEmailAccounts] ('someone@example.com')
FOR XML RAW('tr'), ELEMENTS, ROOT('table')
这将生成一个 XML 响应,其中包含一个列出所有关联帐户的 HTML 表。到目前为止一切都很好。
当我尝试将其加入电子邮件地址列表时,问题就开始了 - 最终输出将是一个 CSV 文件,上传到 mailchimp 以执行邮件合并操作。当我在更大的 SQL 语句中包含该函数时,我收到错误:
消息 8155,级别 16,状态 2,第 26 行没有为“帐户”的第 1 列指定列名称。
任何有关如何解决此问题的建议将不胜感激!
select m.E_mail, count(*) MemberCount, accounts.*
from Members m
CROSS APPLY (
(SELECT MembershipNumber td, Username td, FirstName td,
Lastname td, Telephone td, Mobile td
FROM [dbo].[DuplicateEmailAccounts] (E_mail)
FOR XML RAW('tr'), ELEMENTS, ROOT('table')) ) accounts
where m.E_mail is not null and dbo.trim(m.E_mail) <> ''
group by m.e_mail
having count(*) > 1
order by count(*) desc