2014-07-25 42 views
0

我有以下聲明:MYSQL案例與內部聯接

SELECT 
    Dag AS Dag, 
    CASE 
    Jaar 
    WHEN 2013 
    THEN Levering 
    END AS '2013', 
    CASE 
    Jaar 
    WHEN 2014 
    THEN Levering 
    END AS '2014' 
FROM 
    tbl_Levering 
    INNER JOIN tbl_EParameter 
    ON (Maand = tbl_EParameter.ZMaand) 
ORDER BY Dag 

輸出給兩個記錄在該月的每一天。在第一個記錄中,值爲2013,第二行中的值爲2014。我想有一個記錄。

我在聲明中犯了什麼錯誤。

+0

使用一個'GROUP BY'條款。 – hjpotter92

回答

0

我不明白你在問什麼。 但請注意,CASE不能用於更改列名稱。

可能表明您期望得到?

你想要的是這個嗎?

SELECT 
   Jaar AS 'Year', 
   AS Dag Dag 
FROM 
   tbl_Levering 
   INNER JOIN tbl_EParameter 
     ON (Maand = tbl_EParameter.ZMaand) 
GROUP BY 1; 
0

這應該做的伎倆使用max與GROUP BY,這樣你就會有每個DAG一行,並導致2013年,2014年兩個單獨的列,如果你不使用最大再由一羣結果是不確定的,在同一組中的任何一行將被挑選出最終結果

SELECT 
    Dag AS Dag, 
    MAX(CASE 
    Jaar 
    WHEN 2013 
    THEN Levering 
    END) AS '2013', 
    MAX(CASE 
    Jaar 
    WHEN 2014 
    THEN Levering 
    END) AS '2014' 
FROM 
    tbl_Levering 
    INNER JOIN tbl_EParameter 
    ON (Maand = tbl_EParameter.ZMaand) 
GROUP BY Dag 
ORDER BY Dag 
+0

對於MAX,我確實得到了一條記錄,但只記錄了本月的最後一天的記錄,而不是本月的其他日期。 – JanR

0

我喜歡添加一張圖片,但這對我來說是不允許的。

表有以下字段 JAAR,Maand,達格,撬動 所以對於每天在一個月我都在吉慶圍交付我solarpanels

在我要爲6個月的查詢一個記錄,值存儲在tbl_EParameter.Zmaand從2013年和2014年的記錄,這樣

達格2013 2014 1 5 4,5- 2 6,8 3,2 等,等