设置table1.column = table2.column对新列的可能限制

时间:2019-09-15 18:19:46

标签: php mysql

我在一个表中填充了一个数据表,但也使用第二个表来运行条件求和(在...时)。

可以正常工作的初始查询是:

function makeDialog() {
  var html='<input type="button" value="Run" onClick="google.script.run.makingChange();" />';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showSidebar(userInterface);
};

我还有一个单独运行的查询,但是当我尝试将其加入上述内容时,它会中断表并且不显示数据

$sql = "SELECT `add_job`.*,
                                SUM(addincome) AS income,
                                SUM(addpayment) AS cost,
                                SUM(`add_job`.`addincome` - `add_job`.`addpayment`) / SUM(`add_job`.`addpayment`)*100 AS markup,
                                SUM((add_job.addincome * 1.2) - add_job.addincome) AS vat_in
                                FROM`add_job`";
    $query = mysqli_query($conn, $sql);

我通过PHP运行这些查询,并用结果填充数据表。

我非常感谢有人可以帮助我加入两个查询

1 个答案:

答案 0 :(得分:2)

万一有人反对这种事情发生……我这样分组:

$sql = "SELECT *, FROM (SELECT `add_job`.*,
        SUM(addincome) AS income,
        SUM(addpayment) AS cost,
        SUM(`add_job`.`addincome` - `add_job`.`addpayment`) / SUM(`add_job`.`addpayment`)*100 AS markup,
        SUM((add_job.addincome * 1.2) - add_job.addincome) AS vat_in
        FROM `add_job`) q1 
            join 
                (SELECT `driver`.*, 
                SUM(CASE WHEN `driver`.vatregistered= 'Y' then `add_job`.addpayment Else 0 end) * 0.2 as vat_pay 
                FROM `driver` 
                LEFT JOIN `add_job` ON `add_job`.adddriver = `driver`.drivercompany) q2 on 0=0";
$query = mysqli_query($conn, $sql);

答案中的q1表示所查询的查询1,q2表示查询2。