[英]Selecting more than one column to query in sql
我可能对我的SQL了解有点麻烦。 这是我当前正在使用的SQL:
CREATE TEMPORARY TABLE Temp
(
sPropertyCode VARCHAR(9),
sDataDate DATE,
PRIMARY KEY (sPropertyCode)
);
INSERT IGNORE Temp (sPropertyCode, sDataDate)
SELECT sPropertyCode, sDataDate
FROM tasks as t, task_data AS d
WHERE t.iTaskId = d.iTaskId
AND iRemoved = 1
AND sDataType = 'sAgencyAgreementDate'
AND iBusinessStreamId = 9;
SELECT t.sPropertyCode, sDataDate, SFirstSeen, sTaskType
FROM tasks AS t, temp AS a
WHERE iRemoved = 1
AND iBusinessStreamId = 9
AND sTaskType IN ('RF', 'IF', 'CM')
AND t.sPropertyCode = a.sPropertyCode
ORDER BY sPropertyCode, sFirstSeen;
DROP TABLE Temp;
因此,“ RF”,“ IF”和“ CM”是我们收到的任务。 每个属性代码一次只能触摸一次这些任务。 我想显示每个属性代码触及的日期。 目前它正在运行,但将其显示在三列中,并将任务类型显示在一列中。 我希望每个任务在单独的列中显示,并在其相应的列中首次显示该日期。
因此,从下面的图片中可以看出,当前代码在上面的代码中的布局方式。
这就是我想要的样子,而不是像侧面那样显示任务,我希望它们在列中显示其自己的特定日期
先感谢您 :)
SELECT t.sPropertyCode, sDataDate, SFirstSeen, a1.sTaskType, a2.sTaskType, a3.sTaskType
FROM tasks AS t
INNER JOIN temp AS a1 on t.sPropertyCode = a1.sPropertyCode and a1.sTaskType = 'RF'
INNER JOIN temp as a2 on t.sPropertyCode = a2.sPropertyCode and a2.sTaskType = 'IF'
INNER JOIN temp as a3 on t.sPropertyCode = a3.sPropertyCode and a3.sTaskType = 'CM'
WHERE iRemoved = 1 AND iBusinessStreamId = 9
ORDER BY sPropertyCode, sFirstSeen;
您也可以使用外部联接(如果并非总是3种口味)。
5-col表中任何行的CM,IF和RF列之间的含义有什么区别? 在您列出的示例中,它们始终是相同的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.