我遇到了SELECT的问题,我必须通过Mail进行分组,以便我可以通过邮件发送结果。
我有这样的数据:
-------------------------
ArtNr|Status| Date |Mail |Comment
2 20 22.01.16 test1@mail.com comment1
3 20 23.01.16 test3@mail.com comment2
26 20 19.01.16 test2@mail.com comment3
25 20 05.01.16 test1@mail.com comment3
我需要通过邮件对此进行分组,以便我可以将数据仅发送到与其相关的数据。
这就是我现在所拥有的:
SELECT ArtNr, [Status], Date, Mail, Comment
From dbmail
Group by Mail
但这显然不会起作用,因为我没有聚合。我无法对此进行求和/计数或最大化,因为我需要两个数据集,但只发送到一个邮件地址。
可能我只是在树前看不见木头。
答案 0 :(得分:1)
GROUP BY
仅适用于您尝试从数据中提取聚合的情况,正如您所说的那样。
如何最好地满足此要求实际上取决于目标应用程序如何处理数据。选项包括 -
ROW_NUMBER()
添加PARTITION BY Mail
字段,并在显示1时开始新邮件。还有更多选择;什么是正确的方式取决于你最终如何使用数据。但是到目前为止你所说的答案并没有在你的SQL中包含GROUP BY
子句。
答案 1 :(得分:1)
这是一些伪代码......
你明白了: - )
DECLARE @emailAddress NVARCHAR(50)
DECLARE cur CURSOR FOR SELECT DISTINCT [email] FROM [table] FOR READONLY
OPEN cur
FETCH NEXT FROM cur INTO @emailAddress WHILE @@FETCH_STATUS = 0
BEGIN
SELECT [somestuff] FROM [table] WHERE email = @emailAddress
SEND YOUR EMAIL ///
FETCH NEXT FROM cur INTO @emailAddress
END