Sql 在select和其他列中指定变量值
我知道,您可以通过执行select为select中的变量赋值Sql 在select和其他列中指定变量值,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我知道,您可以通过执行select为select中的变量赋值 SELECT @blahBlah = (tbl.ProductGroup) FROM tbl 好的,现在我需要做的是如下 每个账户/用户每天都有一定数量的交易;账户1可以做5笔交易,账户2可以做3笔交易 因此,在一个select中,将确定此帐户是否超出其限制以及超出多少,我们有许多inSelect计算来生成列数据 问题是,我们现在有大约4列,每个列将执行嵌套选择,从另一个表中获取限制,以便为当前表生成一个值 理想的做法是将这些限制
SELECT @blahBlah = (tbl.ProductGroup)
FROM tbl
好的,现在我需要做的是如下
每个账户/用户每天都有一定数量的交易;账户1可以做5笔交易,账户2可以做3笔交易
因此,在一个select中,将确定此帐户是否超出其限制以及超出多少,我们有许多inSelect
计算来生成列数据
问题是,我们现在有大约4列,每个列将执行嵌套选择,从另一个表中获取限制,以便为当前表生成一个值
理想的做法是将这些限制分配给select语句中的@变量
,并在需要时仅在所述语句中引用该变量
举一个简单的例子(不是实际的逻辑):
你明白了
有什么方法可以做到这一点吗?是的,你可以用a来做这类事情。以下是您可以调整以使其适用于您的案例的基本想法:
;WITH limtis AS
(
SELECT Limit, ClientId
From tClient
Where tClient.clientId = tbl.ClientId
)
select ...
from batch
INNER JOIN Limtis On ...
WHERE ...
希望你了解情况。试试这样的方法
select clientid from tClient as t1 inner join batch as t2
on t1.clientId=t2.clientId
group by clientId
having sum(batchItemCount)>sum(limit)
select clientid from tClient as t1 inner join batch as t2
on t1.clientId=t2.clientId
group by clientId
having sum(batchItemCount)>sum(limit)