0

メールアドレスを共有するアカウントのデータベースをクリーンアップしています。一部のメール アドレスは 20 ものアカウントで使用されていますが、これを許可しない新しいシステムに移行しています。

私がここでやろうとしているのは、電子メール アドレスのリスト、それらが使用された回数のカウント、およびアカウントの詳細を含む HTML テーブルを含む 3 番目の列を作成することです。これらのテーブルは、関連付けられたアドレスに電子メールで送信され、アカウントを修正するよう依頼されます。

それ自体では、関数は正しく機能します。

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')

これにより、関連するすべてのアカウントを一覧表示する HTML テーブルを含む XML 応答が生成されます。これまでのところすべて順調です。

問題は、メールアドレスのリストに参加しようとしたときに始まります。最終的な出力は、メールマージ操作を行うためにmailchimpにアップロードするCSVファイルになります。関数をより大きな 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
4

1 に答える 1