2015-07-18 3 views
0

Привет всем, что MySQL запрос будет выводиться в этом примере ...MySQL запрос для этого

  'table 1 
      | id |date  | 
      | 1 |01/01/2015 | 
      | 2 |01/02/2015 | 
      | 3 |01/01/2015 | 
      | 4 |01/02/2015 | 

      'table 2 
      |id |table1_id| value1| value2| value3|value4| 
      | 1 | 1  | 5 | 2 | 4 | 4 | 
      | 2 | 2  | 40 | 3 | 2 | 3 | 
      | 3 | 3  | 5 | 2 | 4 | 5 | 
      | 4 | 4  |  | 4 | 2 | 3 | 

образец

$result = ($value1 * $value2) + ($value3 + $value4); 

      if($value1 == ""){ 

      }else{ 
      $result = ($value1 * $value2) + ($value3 + $value4); 
      } 

сумму с той же датой ... Вот Окончательный результат. ...

  date    finalvalue 
      01/01/2015   37 
      01/02/2015   125 

заранее спасибо ..

+0

если значение1 пуста, вычисление не будет продолжаться, но если значение1 не пусто, вычисление продолжится, и тогда будет добавлена ​​та же дата. – fullcarlo

ответ

2

Я думаю, что вы хотите сделать что-то вроде:

SELECT table1.date, SUM(table2.value1) + SUM(table2.value2) + SUM(table2.value3) + SUM(table2.value4) AS finalvalue 
FROM table1 
INNER JOIN table2 ON table1.id = table2.table1_id 
GROUP BY table1.date 

Не делайте сумму в PHP, вы можете сделать это вам (более эффективно) в запросе SQL.

+0

Как я могу суммировать вычисления, которые могут дать мне окончательный результат? – fullcarlo

+0

Я думаю, что выход будет работать, если значение1 пусто. он не должен вычисляться, если он не пуст – fullcarlo

+0

В MySQL вы можете указать оператор 'if': SUM (table2.value1) + SUM (IF (table2.value1 IS NOT NULL, table2.value2,0)) + SUM (IF (table2.value1 IS NOT NULL, table2.value3,0)) + SUM (IF (table2.value1 IS NOT NULL, table2.value4,0)) AS finalvalue –

1

Я не пробовал это (как я не имею установки MySQL), но вы можете попробовать что-то вроде ниже:

SELECT t.date, t.$value1, t.$value2, t.$value3, t.$value4 FROM (SELECT t1.id, t1.date, $value1, $value2, $value3, $value4 from table t1, table t2 where t1.id == t2.table1_id group by t1.id)) as t GROUP By t.date; 

относятся: https://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html для От подзапрос

+0

как я могу выводить следующее значение value1 пусто? – fullcarlo

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