【问题标题】:SQL query for formatted output [closed]格式化输出的 SQL 查询 [关闭]
【发布时间】:2013-07-11 06:11:43
【问题描述】:

我想创建一个 SQL 查询,并格式化该查询的输出。

我的桌子是这样的:

Time    Amount  Id  iMId
---------------------------------
  1      2500   1   4
  3      5000   1   4
  5     10000   1   4
  7     20000   1   4
  1      2500   2   8
  3      5000   2   8
  5     10000   2   8
  7     20000   2   8

我想要以下格式的输出:-

Id  iMId Time1 Time2 Time3  Time4
----------------------------------
1   4   1     3       5       7
       2500 5000   10000     20000
2   8   1     3      5         7
       2500 5000    10000    20000

我试过了:

SELECT sProfileId,iMerchantId,'Day1','Day2','Day3','Day4',dAmount 
FROM (SELECT RM.sProfileId,RM.iMerchantId,RC.iDays,RC.dAmount 
      FROM  tblRuleByMerchant RM 
      JOIN tblAlertRuleCummulativeData RC ON (RM.sProfileId=RC.sProfileId) ) AS d
PIVOT (max(RM.sProfileId) FOR RM.iMerchantId IN ('Day1','Day2','Day3','Day4')) piv

【问题讨论】:

  • 我假设你的意思是你想格式化输出..而不是查询。查询格式不会改变它的运行方式。
  • 另外,为了让您的问题得到回答,您必须向我们展示您在编写查询(找到解决方案)方面所做的努力,否则您的问题将很有可能被否决和关闭。
  • 请展示你做了什么。至少 2 或 3 行将有助于我们的起点
  • 我要查询。我试过 select sProfileId,iMerchantId,'Day1','Day2','Day3','Day4',dAmount from ( SELECT RM.sProfileId,RM.iMerchantId,RC.iDays,RC.dAmount FROM tblRuleByMerchant RM JOIN tblAlertRuleCummulativeData RC ON ( RM.sProfileId=RC.sProfileId) ) 作为 d pivot ( max(RM.sProfileId) for RM.iMerchantId in ('Day1','Day2','Day3','Day4') ) piv;

标签: sql sql-server


【解决方案1】:

我假设Time 列的值是固定的,即1,3,5,7

Below Query 与您想要实现的相似。

select distinct T.id,T.iMid,
  (select amount from myTable
  where time = 1 and id = T.id and iMid = T.iMid) as Time1,
  (select amount from myTable
  where time = 3 and id = T.id and iMid = T.iMid) as Time2,
  (select amount from myTable
  where time = 5 and id = T.id and iMid = T.iMid) as Time3,
  (select amount from myTable
  where time = 7 and id = T.id and iMid = T.iMid) as Time4,
  2 as level
  from myTable T
 union All
select distinct T.id,T.iMid,1,3,5,7,1
  from myTable T
 order by id,level

Here is the SQLFiddel DEMO 与您在您的问题中提到的类似模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多