我第一次尝试编写一个复杂的存储过程。我的目标是从2个表中获取具有某些条件的计数。
考虑Merchant表和Email表。电子邮件表保存了商家发送的电子邮件邀请。商家表有所有的商家信息和电子邮件ID。我的目标是通过检查商家发送的电子邮件邀请函是否已经注册,来获得商家表中的EmailID的数量。
我已经试着把这个问题弄清楚了。希望我说清楚了。
提前谢谢..
发布于 2010-11-12 22:19:13
为什么是存储过程?这听起来像是可以在一个SQL查询中完成。
让我们看看我是否正确理解了您的问题:商家邀请其他人也成为商家,而您想要一个列表,其中包含每个商家接受的邀请数量?
一些类似的东西:
select MerchantName, count(1)
from Merchants, Emails
where Merchants.Id = Emails.Id
and Emails.SignedUp = 'YES!'
group by MerchantName;
发布于 2010-11-12 22:20:43
听起来您所描述的模式中有一些混淆。基于我认为你正在尝试做的事情,我建议你有一个商家表,一个电子邮件表和一个MerchantEmail表,它将商家链接到发送的电子邮件邀请。
否则,具有电子邮件ID的Merchant表的显示方式是多对一关系,因此多个Merchants可以是电子邮件的收件人。在这种情况下,注册标志将出现在Merchants表中,而不是Email表中。
CREATE PROCEDURE GetMerchantsSignedUp
@EmailId INT
AS
SELECT COUNT(*) AS MerchantSignedUp
FROM Merchant, Email
WHERE Merchant.EmailId = Email.Id
AND Merchant.SignedUp = 1
AND Email.Id = @EmailId
https://stackoverflow.com/questions/4165490
复制相似问题