带内连接的MYSQL案例

时间:2014-07-25 19:54:05

标签: 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。我想要一条记录。

声明中我错了。

3 个答案:

答案 0 :(得分:0)

我不明白你在问什么。 但请注意,CASE不能用于更改列名。

可以证明你期望得到吗?

你想要的是这个吗?

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

答案 1 :(得分:0)

这应该通过分组使用max,以便每个dag有一行,并且如果你不使用max那么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

答案 2 :(得分:0)

我想添加一张图片,但此刻我不允许这样做。

该表格包含以下字段 Jaar,Maand,Dag,Levering 因此,对于本月的每一天,我都有一张记录,以kHw为我的solarpanels交付

在我想要的第6个月的查询中,存储在tbl_EParameter.Zma中的值和2013年和2014年的记录,就像这样

Dag 2013 2014 1 5 4,5 2 6,8 3,2 等等