【发布时间】:2020-04-11 13:48:35
【问题描述】:
我在显示来自两个公用表表达式的列时遇到问题。我通过查询学生姓名和他们的期中成绩来创建第一个表,另一个表是学生姓名和他们的期末成绩。
CREATE TABLE MidTerm AS (SELECT Name, Score
FROM GRADE
WHERE TYPE = ''MidTerm
)
CREATE TABLE FinalTerm AS (SELECT Name, Score
FROM GRADE
WHERE TYPE = 'Final'
)
创建的两个具有相同数量的列和相同的变量。现在我想显示名称、分数“MidTerm”和分数“FinalTerm”,我该如何实现呢?我设法以仅牺牲 SELECT * 为代价使用 UNION。如果我指定
Midterm table:
Name : Score
A : 50
B : 60
Finalterm table:
Name : Score
A : 70
B : 80
我想通过显示加入 CTE 表
Final Intended Result:
Name : Score "MidTerm" : Score "FinalTerm"
A : 50 : 70
B : 60 : 80
它会说无效的列标识符。我该如何解决?
【问题讨论】:
-
这个不清楚。使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。请在代码问题中提供minimal reproducible example--cut & paste & runnable code;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL 的 SQL。请说明您可以完成目标的哪些部分。
-
请通过编辑而不是 cmets 澄清。
-
编辑了上面的解释
-
仍然没有minimal reproducible example--给出确切的错误信息和代码,我们可以剪切和粘贴来导致它并编辑您的文字。在给出业务关系(船舶)/关联或表(基础或查询结果)时,说明其中的一行根据其列值说明了业务情况。当你得到一个你不期望/不理解的结果时,停止试图找到你的总体目标并找出你的误解是什么。--隔离第一个意外/误解的子表达式及其输入和输出,了解什么是误解、错字、错误的推理等导致了它。 (调试基础。)问这个。
-
您似乎只是想要对名称进行内部连接。请 MRE。