小编use*_*670的帖子

如何在TSQL中使用循环?

在TSQL中,我想更改以下代码,必须使用硬编码的dhomes来使用循环进行优化.我还尝试添加循环失败.

Declare  @dhome Tinyint, @bp smallint, @lr smallint, @q smallint

    // Set @dhome = 1
  While(@dhome <= 3) // My attempt to add a loop

  SELECT @lr = MAX(NQdDate), @q = NQd
  FROM NQdHistory
  WHERE dhomeId = @dhome 
  GROUP BY NQdDate, NQd

  SELECT @bd = COUNT(*)
  FROM bdhome
  WHERE NQdDate= @lr AND dhomeID= @dhome 

  DELETE FROM ND1 WITH(XLOCK)
  WHERE dhomeID= @dhome  AND NQdDate= @lr

  UPDATE NQdHistory
  SET Nbd = @q - @@RowCount - @bp, NBd = @bp
  WHERE NQdDate= @lr …
Run Code Online (Sandbox Code Playgroud)

t-sql loops for-loop while-loop

9
推荐指数
1
解决办法
3万
查看次数

汇总功能 - 替换NULL

我似乎遇到了SQL的最终部分问题.在我的SQL NULL中使用roll up函数实现组时出现.如何修改NULL以便在此聚合SQL中将其替换为TOTAL?

Current table returned
Name Activate Deactivate
Max      5       2
TAX     12       5
NULL    17       8

select 
    case 
    when (upper(m.email) like '%max.com') then 'MAX'
    when (upper(m.email) like '%tax.com') then 'TAX'
    else 'OTHER'
end Name, 
SUM(case when substring(convert(varchar(8),n.created_on,112),1,6) = '201209' then 1 else 0         end) 'Activated',
   SUM(case when substring(convert(varchar(8),m.LastLockoutDate,112),1,6)='201209' then 1 else 0              end) 'Deactivated'
           from membership.user_details d
          inner join membership.aspnet_membership m 
on m.userid = d.userid
        inner join membership.user_notes n 
         on n.userid = d.userid
        and n.CREATED_ON = (select min(created_on) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

1
推荐指数
2
解决办法
2万
查看次数

标签 统计

for-loop ×1

loops ×1

sql ×1

sql-server ×1

sql-server-2008 ×1

t-sql ×1

while-loop ×1