2013-09-13 2 views
0

Я использую следующий кодперекрестный в PHP для CodeIgniter

 
    Sample Gender Handedness 
    1 Female Right-handed 
    2 Male Left-handed 
    3 Female Right-handed 
    4 Male Right-handed 
    5 Male Left-handed 
    6 Male Right-handed 
    7 Female Right-handed 
    8 Female Left-handed 
    9 Male Right-handed 
    10 Female Right-handed 

 
       Left- 
      handed Right- 
         handed Total 
    Males 2 3 5 
    Females 1 4 5 
    Total 3 7 10 

Возникают в таблице выше, и мне нужно, чтобы получить как второй таблицы. Мне нужно использовать кросс-таблицу, но я не знал, как это сделать. Может кто-то мне помочь, пожалуйста. Я делаю это в codeigniter.

+0

что такое кросс-таблица? также покажите нам соответствующий код/​​разметку –

+0

http://en.wikipedia.org/wiki/Cross_tabulation, пожалуйста, проверьте этот url – user2739848

ответ

2

Вы можете сделать это с помощью запроса

SELECT gender, 
     SUM(CASE WHEN Handedness = 'Left-handed' THEN 1 ELSE 0 END) left_handed, 
     SUM(CASE WHEN Handedness = 'Right-handed' THEN 1 ELSE 0 END) right_handed, 
     COUNT(*) total 
    FROM Table1 
GROUP BY gender WITH ROLLUP 

Выход:

 
| GENDER | LEFT_HANDED | RIGHT_HANDED | TOTAL | 
|--------|-------------|--------------|-------| 
| Female |   1 |   4 |  5 | 
| Male |   2 |   3 |  5 | 
| (null) |   3 |   7 | 10 | -- this is your total produced by WITH ROLLUP 

Вот SQLFiddle демо


Я не эксперт в CI, но ваш код может выглядеть так:

$sql = "SELECT gender, 
       SUM(CASE WHEN Handedness = 'Left-handed' THEN 1 ELSE 0 END) left_handed, 
       SUM(CASE WHEN Handedness = 'Right-handed' THEN 1 ELSE 0 END) right_handed, 
       COUNT(*) total 
      FROM Table1 
     GROUP BY gender WITH ROLLUP"; 
$data = $this->db->query($sql)->result_array(); 
+0

, как это использовать в кодеигниторе и показать его в таблице html – user2739848

+0

Использовать необработанный запрос в CI. А затем создайте свою разметку в представлении, итерации по массиву с помощью набора результатов. Или вы ожидаете, что один из нас напишет весь код для вас? – peterm

+0

no no не таким образом, как я новичок в codeigniter, я прошу пример кода для справки, так как это нужно делать в контроллере и модели na so. надеюсь ты понимаешь. спасибо – user2739848

Смежные вопросы