php – 与其他表连接的数据透视表
发布时间:2020-12-13 15:57:02 所属栏目:PHP教程 来源:网络整理
导读:我想问一下与其他表联系的数据透视表.它的外观如下: 结果 | DATE | A | B | C | D ||-----------|---|----|----|----||2015-06-01 |10 | 20 | 30 | 20 ||2015-06-02 |20 | 30 | 40 | 20 ||2015-06-03 |40 | 10 | 10 | 20 | 该表来自以下两个表: 表大师 |ID
我想问一下与其他表联系的数据透视表.它的外观如下:
结果 | DATE | A | B | C | D | |-----------|---|----|----|----| |2015-06-01 |10 | 20 | 30 | 20 | |2015-06-02 |20 | 30 | 40 | 20 | |2015-06-03 |40 | 10 | 10 | 20 | 该表来自以下两个表: 表大师 |ID|Type| |--|----| |1 |A | |2 |B | |3 |C | 表类型 |ID|Date | idType |value| |--|----------|--------|-----| |1 |2015-06-01| 1 | 10 | |2 |2015-06-01| 2 | 20 | |3 |2015-06-01| 3 | 30 | |4 |2015-06-01| 4 | 20 | |5 |2015-06-02| 1 | 20 | |6 |2015-06-02| 2 | 30 | |7 |2015-06-02| 3 | 40 | |8 |2015-06-02| 4 | 20 | |9 |2015-06-03| 1 | 40 | |10|2015-06-03| 2 | 10 | |11|2015-06-03| 3 | 10 | |12|2015-06-03| 4 | 20 | 我在下面尝试了这个代码,但它不是succsess. SELECT * FROM ( SELECT tgl_nab,idtype,nilai FROM jts_test ) src pivot (sum(nilai) for idtype in ([1],[2],[3],[4]) ) piv; 错误显示如下:
我也有其他相关的问题.如何在视图codeigniter中显示结果表.假设我有一个控制器来选择所有数据,如下面的代码: public function test() { if($this->session->userdata('logged_in')) { $session_data = $this->session->userdata('logged_in'); $data['test'] = $this->report_m->get_allcontentest(); $this->load->view('header'); $this->load->view('report/test_list_view',$data); $this->load->view('footer'); } else { redirect('login'); } } 我不知道模型是如何工作的,它是否写出与获得结果时相同的查询.或者还有其他方式. <div class="box-body table-responsive"> <table id="datatable" class="table table-bordered table-hover"> <thead> <tr> <th>No</th> <th><?php echo $baris->type; ?></th> <th>Created At</th> <th>Menu</th> </tr> </thead> <tbody> <?php foreach($report as $baris){ ?> <tr> <td><?php echo $baris->id; ?></td> <td><?php echo $baris->nilai; ?></td> <td><?php echo $baris->create; ?></td> <td> <a href="#" class="fa fa-eye"></a> </td> </tr> <?php } ?> </tbody> </table> </div> 真的很高兴你的帮助. 解决方法
您可以使用动态交叉表:
SQL Fiddle SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(CASE WHEN m.idType = ',Id,' THEN value END) AS ',Type ) ) INTO @sql FROM tblType; SET @sql = CONCAT('SELECT m.Date,',@sql,' FROM tblMaster m INNER JOIN tblType t ON t.Id = m.idType GROUP BY m.Date ORDER BY m.Date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; 有关动态枢轴的更多信息,请阅读此article. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |