Sql 如何让信息显示在某一列的一行中,同时填充其他列中的多行?

Sql 如何让信息显示在某一列的一行中,同时填充其他列中的多行?,sql,tsql,ssms,Sql,Tsql,Ssms,我正在使用SQL Server管理工作室 我无法在谷歌或stackoverflow上找到我的答案,可能是因为措辞不当 我要做的是我试图在日期(第1列)中只包含一个在其下方有空字段的日期,但我也尝试按第2列分组,并在第3列中包含一个计数。我还尝试在第一行中获取计数不同的第4列、第5列和第6列,以及下面的空白字段(类似于日期列) 我是如何尝试做到这一点的 我曾尝试使用“partition by”,但它只在我的列的所有行中给我一个“1”,而不是第一行中的一个计数,列的其余部分留空。我可能写得不正确,但

我正在使用SQL Server管理工作室

我无法在谷歌或stackoverflow上找到我的答案,可能是因为措辞不当

我要做的是我试图在日期(第1列)中只包含一个在其下方有空字段的日期,但我也尝试按第2列分组,并在第3列中包含一个计数。我还尝试在第一行中获取计数不同的第4列、第5列和第6列,以及下面的空白字段(类似于日期列)

我是如何尝试做到这一点的 我曾尝试使用“partition by”,但它只在我的列的所有行中给我一个“1”,而不是第一行中的一个计数,列的其余部分留空。我可能写得不正确,但我不再有我用来举例说明的代码 我也尝试过做一个子查询,但它在每一行的整个列中都给出了相同的计数

我向您展示了我的当前输出,以及我用来获取它的代码,以及我想要的输出

我的数据当前如下所示:

Date       | Bucket |  #InBucket  
2017-03-08 |  NULL  |    300 
2017-03-08 |   A    |     27     
2017-03-08 |   B    |      0
2017-03-08 |   c    |      4
2017-03-08 |   D    |      6   
我用于获取此数据的查询是:

select convert(date, getdate(), 101) as [Date], dpcd.bucket, count(*) as [# in Bucket]

from mytable dpcd

where convert(date, getdate(), 101) = convert(date, deletedon, 101)


group by bucket
order by Bucket
我期望的输出如下:

Date       | Bucket |  #InBucket  |  column4  |  column5  |  colum6
2017-03-08 |  NONE  |    300      |    400    |    200    |   500
           |   A    |     27      |           |           |  
           |   B    |      0      |           |           | 
           |   c    |      4      |           |           |
           |   D    |      6      |           |           |
很抱歉,我解释得太多了。我想做的是可能的吗?我在SQL方面没有太多的经验,因此任何和所有的帮助都将不胜感激

有没有一个问题已经有了我正在寻找的答案?如果是的话,你能告诉我这个问题吗?我还没有找到答案。

您可以在SQL中这样做,但是这种表示层的更改最好在应用层中完成

但是,您可以使用
行号()
按顺序进行操作

select (case when seqnum = 1 then [Date] end) as [Date],
       bucket, [# in Bucket]
from (select convert(date, getdate(), 101) as [Date],
             dpcd.bucket, count(*) as [# in Bucket],
             row_number() over (order by bucket) as seqnum
      from mytable dpcd
      where convert(date, getdate(), 101) = convert(date, deletedon, 101)
      group by bucket
     ) d
order by Bucket;

您应该在应用程序层进行这种类型的重新格式化。这对日期字段有效。非常感谢你。有没有办法在同一个查询中对计数列再次执行此操作?@jgord。这种逻辑适用于任何领域。如果不明显,您可以用样本数据和期望的结果问另一个问题。