簡體   English   中英

選擇多個列以在SQL中進行查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM