【问题标题】:Sql column adding another columnSql 列添加另一列
【发布时间】:2014-01-02 15:49:00
【问题描述】:
SELECT * from
  (
    SELECT intUserID as [KidId], intAssessmentID as [assid] ,vchTopic as [Topics] from ManageAssessment WHERE intUserID=174 and IsRorW='yes'

   )AS S
  pivot
  (
  COUNT(KidId)

    FOR assid IN ([22],[19],[16],[17],[18])
   )AS s

嘿,这是我创建表格的代码,我想添加其他列,但它来错了..! 我想要第 4 列之后的一列,即 2 值的差异。谁能帮我解决。谢谢.....enter image description here

【问题讨论】:

  • 您的意思是将[19] - [16] 列为新列吗?你能发布想要的结果吗?
  • 没有得到你想说的。 italic_i 想要在第 4 列之后的一列,即 2 个值的差异。_italic 这是什么
  • 在第 18 列之后,我必须添加新列,该行应包含第 22 列和第 19 列的差异。

标签: sql sql-server pivot


【解决方案1】:

你可以这样做:

SELECT 
  Topics,
  [22],
  [19],
  [16],
  [17],
  [18],
  [22] - [19] AS NewColumn      
from
(
   SELECT 
     intUserID as [KidId], 
     intAssessmentID as [assid] ,
     vchTopic as [Topics] 
   from ManageAssessment 
   WHERE intUserID=174 and IsRorW='yes'
)AS S
pivot
(
  COUNT(KidId)
  FOR assid IN ([22], [19], [16], [17], [18])
)AS s;

更新:

如果您想为所有新列添加一个新行作为总计,您可以执行以下操作:

WITH CTE AS
(
    SELECT 
      Topics,
      [22],
      [19],
      [16],
      [17],
      [18],
      [22] - [19] AS NewColumn      
    from
    (
       SELECT 
         intUserID as [KidId], 
         intAssessmentID as [assid] ,
         vchTopic as [Topics] 
       from ManageAssessment 
       WHERE intUserID=174 and IsRorW='yes'
    )AS S
    pivot
    (
      COUNT(KidId)
      FOR assid IN ([22], [19], [16], [17], [18])
    )AS s
)
SELECT
  Topics,
  [22],
  [19],
  [16],
  [17],
  [18],
  NewColumn    
FROM CTE
UNION ALL
SELECT
  'Total',
  SUM([22]),
  SUM([19]),
  SUM([16]),
  SUM([17]),
  SUM([18]),
  SUM(NewColumn)
FROM CTE;

【讨论】:

  • 是的,先生,stackoverflow.com/questions/9595157/…,我已经检查过了,我无法满足我的要求,我无法从那里删除临时表,先生,如果您有任何解决方案可以发给我...谢谢你。
  • @user2783430- 抱歉,我无法理解您的要求,您要添加新列还是新行?请编辑您的问题并解释您要如何处理一些示例。
  • @user2783430 - 随时欢迎您,请随时提出更多问题,祝您好运 :)
猜你喜欢
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 2011-09-22
  • 2022-07-18
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多