我有下表但不确定是否可以转动这个并保留所有标签.
RATIO RESULT SCORE GRADE
Current Ratio 1.294 60 Good
Gearing Ratio 0.3384 70 Good
Performance Ratio 0.0427 50 Satisfactory
TOTAL NULL 180 Good
Run Code Online (Sandbox Code Playgroud)
我承认在使用枢轴方面不是很好,所以经过几次尝试导致这个输出:
SELECT 'RESULT' AS 'Ratio'
,[Current Ratio] AS 'Current Ratio'
,[Gearing Ratio] AS 'Gearing Ratio'
,[Performance Ratio] AS 'Performance Ratio'
,[TOTAL] AS 'TOTAL'
FROM
(
SELECT RATIO, RESULT
FROM GRAND_TOTALS
) AS SREC
PIVOT
(
MAX(RESULT)
FOR RATIO IN ([Current Ratio],[Gearing Ratio], [Performance Ratio], [TOTAL])
) AS PVT
Run Code Online (Sandbox Code Playgroud)
这给出了结果:
Ratio Current Ratio Gearing Ratio Performance Ratio …Run Code Online (Sandbox Code Playgroud) 好的.
我已经在工作中投入了一个项目,虽然我有一些SQL技能,但它们非常生疏.
其中一个工作场景给我留下了一些表格,其中包含了我需要总结的值.它们也没有链接,但是所有表中的顺序都是相同的.
基本上,我想采取这两个表:
CASH TABLE
London 540
France 240
Belgium 340
CHEQUE TABLE
London 780
France 490
Belgium 230
Run Code Online (Sandbox Code Playgroud)
要获得这样的输出以输入图形应用程序:
London 1320
France 730
Belgium 570
Run Code Online (Sandbox Code Playgroud)
请帮忙.
我试图根据条件从CTE中做出选择.
我已经为今天的期间宣布了一个变量(@PRD).它保留了我们目前所处期间的价值.
现在我想从一个表中做出选择,根据我们是否在今年上半年来限制返回的信息.
例如,我们处于第2期,所以我希望从我的CTE返回的所有内容都在PRD 1和5之间.如果我们在第6期(5之后),那么是的,我想要从表中返回所有内容.
这是我想要完成的伪代码:
SELECT
CASE
WHEN @PRD <= 5
THEN (SELECT * FROM DISPLAY WHERE PERIOD IN (1,2,3,4,5))
ELSE (SELECT * FROM DISPLAY)
END
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.
请问我怎么能这样做?
谢谢x
编辑/更新:
更多的代码涉及CTE并且非常长.底线是让我说我有这个CTE
;WITH DISPLAY as (
select * from lots_of_things
)
SELECT * FROM DISPLAY
Run Code Online (Sandbox Code Playgroud)
在此CTE上进行常规选择后,它返回如下所示的数据:
PERIOD (INT) DEPARTMENT GROUP BUDGET
1 ENERGY HE 500
2 ENERGY HE 780
3 ENERGY HE 1500
4 ENERGY HE 4500
5 ENERGY HE 400
6 ENERGY HE 3500
7 ENERGY …Run Code Online (Sandbox Code Playgroud)