Mysql:显示另一列下面的列的值

时间:2016-11-24 05:47:07

标签: mysql sql

我真的陷入了困境。我通过准备一个可执行语句尝试了union。我非常清楚SQL不是用于此类任务的语言,但截至目前,目标是创建一个原型。实际的技术实现将在稍后发生。

我会解释我的要求。

有一个临时表,我在其中存储与该项目相关的名称,项目和功能。这些列将行存储为:

示例数据:

@Override

我希望以这种方式显示输出:

   project, Tracker, resource_name, Total_Hours, date, project_counts, 

   'Slim', 'Feature', 'babu.balakrishnan', '39', '2016-10-22', '20'
   'Slim', 'Feature', 'prasenjit.ghosh',  '1.5', '2016-10-22', '2'
   'Slim', 'Feature', 'shamim.akhtar',    '3',   '2016-10-22', '2'
   'Slim', 'Support', 'babu.balakrishnan', NULL, '2016-10-22', '1'
   'Slim', 'Support', 'shamim.akhtar',     '3',  '2016-10-22', '2'

我知道如何在一行中显示开发者名称,项目名称和日期,但我无法弄清楚如何继续在项目名称下方显示项目状态。此外,这仅适用于一个开发人员。我需要为开发人员关联的所有项目重复这一点,然后也为其他开发人员重复。

   babu.balakrishnan    Slim     2016-10-22    
                       Feature      20                        
                       Support      1             


      prasenjit.ghosh   Slim                                   
                        Feature     3              

我得到的输出是:

       SELECT
       GROUP_CONCAT(DISTINCT
       CONCAT(
       'CASE WHEN date = ''',
       date,
       ''' then project_counts end AS `', date, '`' )
       ORDER BY date ) INTO @sql
       FROM finance_dashboard.resource_utilization_data;

       SELECT
       GROUP_CONCAT(DISTINCT
       CONCAT(
       'CASE WHEN project = ''', 
       project,
       ''' then Tracker end AS `', ' ' , '`' )
       ORDER BY date ) INTO @sql2
       FROM finance_dashboard.resource_utilization_data;

       SET @sql = CONCAT('select distinct resource_name, project        
       ,',@sql, ' from finance_dashboard.resource_utilization_data 
       union
       select '''' ,', @sql2, '," " FROM        
       finance_dashboard.resource_utilization_data group by 
       Tracker');        

我希望功能,支持或该开发者的任何状态,对于各自的开发人员来说都显得微不足道。

这在查询级别是否可行?我知道,必须使用聚合函数。

此外,是否可以动态绑定变量,以便特定行的值写在列下面?

由于

1 个答案:

答案 0 :(得分:0)

$db=new mysqli("localhost","root","","test");

$result=$db->query("select date,project_id,name ... from tableName");

while(list($date,$project_id,$name)=$result->fetch_row()){
   echo "<div class='record'>";
      echo "<div class='field'><strong>Date:</strong> $date</div>";
      echo "<div class='field'><strong>Project:</strong> $project_id</div>";
      echo "<div class='field'><strong>Name:</strong> $name</div>";
   echo "</div>";

 }