我有桌子
StudentID StudentName Subject Marks
1 Savita EC1 50
1 Savita EC2 55
1 Savita EC3 45
1 Savita EC4 34
1 Savita EC5 23
2 Rajesh EC1 34
2 Rajesh EC2 56
2 Rajesh EC3 12
2 Rajesh EC4 45
2 Rajesh EC5 23
3 Smita EC1 76
3 Smita EC2 45
3 Smita EC3 67
3 Smita EC4 56
3 Smita EC5 76
4 Rahul EC1 66
4 Rahul EC2 34
4 Rahul EC3 22
4 Rahul EC4 18
4 Rahul EC5 33
我写了一个查询
SELECT StudentName, EC1,EC2,EC3,EC4,EC5,TotalMarks, case
when EC1<30 and ec2<30 then 'fail'
when EC1<30 and EC3<30 then 'fail'
when EC1<30 and EC4<30 then 'fail'
when EC1<30 and EC5<30 then 'fail'
when EC2<30 and EC3<30 then 'fail'
when EC2<30 and EC4<30 then 'fail'
when EC2<30 and EC5<30 then 'fail'
when EC3<30 and EC4<30 then 'fail'
when EC3<30 and EC5<30 then 'fail'
when EC4<30 and EC5<30 then 'fail'
else 'pass'
end as Result
FROM (SELECT StudentName, EC1, EC2, EC3, EC4, EC5, TotalMarks=EC1+EC2+EC3+EC4+EC5
FROM Student
PIVOT(sum(Marks) for subject in([EC1],[EC2],[EC3],[EC4],[EC5],[TotalMarks]))as pivotTable) A
给出在两个科目中得分不超过30分的学生的成绩为不及格或不及格
Rahul 66 34 22 18 33 173 fail
Rajesh 34 56 12 45 23 170 fail
Savita 50 55 45 34 23 207 pass
Smita 76 45 67 56 76 320 pass
我想为少于30的每个科目添加7分,并在添加7分后查看通过不及格的学生。例如-在添加7个标记之后,rajesh记录应该像
Rajesh 34 56 19 45 30 170 pass
你可以试试这个
SELECT
StudentName,
CASE WHEN EC1 < 30 THEN EC1 + 7 ELSE EC1 END AS EC1,
CASE WHEN EC2 < 30 THEN EC2 + 7 ELSE EC2 END AS EC2,
CASE WHEN EC3 < 30 THEN EC3 + 7 ELSE EC3 END AS EC3,
CASE WHEN EC4 < 30 THEN EC4 + 7 ELSE EC4 END AS EC4,
CASE WHEN EC5 < 30 THEN EC5 + 7 ELSE EC5 END AS EC5,
Total = (EC1 + EC2 + EC3 + EC4 + EC5),
CASE
WHEN EC1 < 23 AND EC2 < 23 THEN 'FAIL'
WHEN EC1 < 23 AND EC3 < 23 THEN 'FAIL'
WHEN EC1 < 23 AND EC4 < 23 THEN 'FAIL'
WHEN EC1 < 23 AND EC5 < 23 THEN 'FAIL'
WHEN EC2 < 23 AND EC3 < 23 THEN 'FAIL'
WHEN EC2 < 23 AND EC4 < 23 THEN 'FAIL'
WHEN EC2 < 23 AND EC5 < 23 THEN 'FAIL'
WHEN EC3 < 23 AND EC4 < 23 THEN 'FAIL'
WHEN EC3 < 23 AND EC5 < 23 THEN 'FAIL'
WHEN EC4 < 23 AND EC5 < 23 THEN 'FAIL'
ELSE 'PASS'
END AS Result
FROM
(
SELECT * FROM Student
) AS ST
PIVOT
(
SUM(Marks) For [Subject] IN (EC1, EC2, EC3, EC4, EC5)
) AS PV
输出
Rahul 66 34 29 25 33 173 FAIL
Rajesh 34 56 19 45 30 170 PASS
Savita 50 55 45 34 30 207 PASS
Smita 76 45 67 56 76 320 PASS
我有一张桌子 我写了一个查询,如 这将在2个科目中得分低于30分的学生的输出为不及格或及格 我想给每门少于30分的科目加7分,然后在加7分后看到那些及格不及格的学生。例如添加7个标记后,rajesh记录应该是这样的
问题内容: 我在表中有数据,如下所示: 我想编写一个SQL查询,以便给出如下结果: 问题答案: Oracle 9i +支持: 您只列出了两列-可能应按年份将类似的内容分组。 有ANSI PIVOT(和UNPIVOT)语法,但是Oracle直到11g才支持它。在9i之前,您必须将CASE语句替换为Oracle特定的DECODE。
问题内容: 以下查询执行得很好… 输出看起来像 但是我的疑问是如何获取列的动态字段值。 那是 , 如何使用以上查询 问题答案: 要使PIVOT动态,您必须编写一个存储过程。 然后,您可以这样称呼它:
问题内容: 我想显示给定下表的数据透视表(交叉表)。 桌子: 插入: 现在,我想显示上述数据的数据透视表,如下所示: 预期结果 : 说明 :我想显示的每个员工都有,这是目前所有员工,节目中有多少组的员工可用,必须显示该员工在其他的也GROUP_NAME没有分配给哪些可用最后必须以数据透视格式显示。 问题答案: SELECT * FROM crosstab( $$SELECT grp.*, e.gr
问题内容: 我的MySQL数据库具有以下列标题: 我有兴趣根据typeOfWork和月份显示结果。例如,所有typeOfWork条目将显示在左侧的第一列中,并且每个字段将在每一列的指定月份总计该特定typeOfWork。因此,我的SQL数据透视表语句当前为: 我目前遇到语法错误,指定了最后一行(从’DEC到ROLLUP’)。我感到困惑的原因是,我只是从脚本中的另一个工作枢轴表改编了该表。我认为差异
我正在使用Laravel5.1进行CMS开发。我有一个简单的帖子结构,用户和用户都可以喜欢帖子。 帖子和用户有多对多关系,并使用数据透视表来表示关系。 职位模型有 用户模型有 我想列出用户的最新活动。例如。 Username1喜欢Post2 Username5喜欢Post9 用户名30喜欢Post25 我知道我必须像这样编写sql查询- 上面的查询工作正常,但有没有办法使用laravel雄辩?