此查询是否与 php 不兼容?它有一个明显的语法错误,因为我无法让它运行



所以,我目前正在为老板制作仪表板,从物流的角度显示数据,他已经向我发送了自己的MS Access查询为了制作一个表,我们的工人可以从应提取的数据中查看。有什么明显的错误吗?

我只是个学徒,但是我的前辈建议围绕命令的一切都需要[]围绕PHP和Codeigniter运行,我尝试通过验证器更改语法,但我似乎已经撞到了砖墙。以下是原始的。

function order_table()
    {   
        $date = date("Y-m-d");
        $macsdb = $this->load->database('macs', TRUE);
$query = $macsdb->query("SELECT temp123.Hour, temp123.User, Count(temp123.[ORDER]) AS CountOfORDER, Sum(temp123.SumOfCountOfPRODUCT) AS SumOfSumOfCountOfPRODUCT, Sum(temp123.SumOfSumOfQUANTITY) AS SumOfSumOfSumOfQUANTITY
FROM (SELECT temp456.Hour, temp456.User, temp456.[ORDER], Sum(temp456.CountOfPRODUCT) AS SumOfCountOfPRODUCT, Sum(temp456.SumOfQUANTITY) AS SumOfSumOfQUANTITY
FROM (SELECT WHAUDIT.Date, Format([Time],'hh') AS [Hour], WHAUDIT.User, WHAUDIT.[ORDER], Count(WHAUDIT.PRODUCT) AS CountOfPRODUCT, Sum(WHAUDIT.QUANTITY) AS SumOfQUANTITY
FROM WHAUDIT
WHERE (((WHAUDIT.type)='I11' Or (WHAUDIT.type)=' 11'))
GROUP BY WHAUDIT.Date, Format([Time],'hh'), WHAUDIT.User, WHAUDIT.[ORDER]
HAVING (((WHAUDIT.Date)='$date')) as temp456
GROUP BY temp456.Hour, temp456.User, temp456.[ORDER]) as temp123
GROUP BY temp123.Hour, temp123.User
ORDER BY temp123.Hour DESC;");
     return $query->result();
        $macsdb->close();        
    }

查询本身如下:

SELECT
  temp123.Hour,
  temp123.User,
  Count(temp123.[ORDER]) AS CountOfORDER,
  Sum(temp123.SumOfCountOfPRODUCT) AS SumOfSumOfCountOfPRODUCT,
  Sum(temp123.SumOfSumOfQUANTITY) AS SumOfSumOfSumOfQUANTITY
FROM
  (
    SELECT
      temp456.Hour,
      temp456.User,
      temp456.[ORDER],
      Sum(temp456.CountOfPRODUCT) AS SumOfCountOfPRODUCT,
      Sum(temp456.SumOfQUANTITY) AS SumOfSumOfQUANTITY
    FROM
      (
        SELECT
          WHAUDIT.Date,
          Format([Time], 'hh') AS [Hour],
          WHAUDIT.User,
          WHAUDIT.[ORDER],
          Count(WHAUDIT.PRODUCT) AS CountOfPRODUCT,
          Sum(WHAUDIT.QUANTITY) AS SumOfQUANTITY
        FROM
          WHAUDIT
        WHERE
          (
            (
              (WHAUDIT.type) = 'I11'
              Or (WHAUDIT.type) = ' 11'
            )
          )
        GROUP BY
          WHAUDIT.Date,
          Format([Time], 'hh'),
          WHAUDIT.User,
          WHAUDIT.[ORDER]
        HAVING
          (((WHAUDIT.Date) = '$date')) as temp456
        GROUP BY
          temp456.Hour,
          temp456.User,
          temp456.[ORDER]
      ) as temp123
    GROUP BY
      temp123.Hour,
      temp123.User
    ORDER BY
      temp123.Hour DESC;

我一直在尝试使用Echo功能来填充表格,但我还没有使它起作用。在查询中,它似乎是查询中的查询。任何建议都将不胜感激。

我尝试了方括号对所有秩序实例进行括号,因为它显然是它的重要组成部分,如果没有它,就无法正确读取。我已经尝试通过验证器运行它,但是由于括号也是如此,这引发了各种问题。我也知道,由于某种原因,它似乎真的不喜欢格式时间部分。

此查询的目标是能够从CodeIgniter视图页面上的结果填充表。任何建议都将不胜感激。

访问中的日期值表达式包裹在八刺中,所以要么:

HAVING (((WHAUDIT.Date)=#$date#)) as temp456

或,如果今天的日期:

HAVING (((WHAUDIT.Date)=Date())) as temp456

另外,这里的领先空间看起来很奇怪:

Or (WHAUDIT.type) = ' 11'

最新更新