因此,我目前正在为老板创建一个仪表板,从物流的角度显示数据,他向我发送了他自己的MS Access查询,在我的生命中,我无法使其运行,试图制作表格我们的工作人员可以从应该提取的数据中查看。有什么明显的错误吗?
我只是一个学徒,但我的年长者建议使用ORDER的所有内容都需要[]才能通过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函数填充表来产生结果,但到目前为止我还没有使它起作用。它似乎是一个查询,在一个查询内,在一个查询内。任何建议将不胜感激。
我尝试用方括号将所有ORDER实例括起来,因为它显然是ORDER的重要组成部分,如果没有它就无法正确读取。我尝试通过验证程序运行它,但是由于括号的原因,这会引发各种问题。我也知道,由于某些原因,它似乎真的不喜欢Time部分的格式。
此查询的目标是能够从Codeigniter视图页面上的结果填充表格。任何建议将不胜感激。
答案 0 :(得分:0)
Access中的日期值表达式用八叉戟包装,因此:
HAVING (((WHAUDIT.Date)=#$date#)) as temp456
或者,如果是今天的日期:
HAVING (((WHAUDIT.Date)=Date())) as temp456
此外,这里的前导空间看起来很奇怪:
Or (WHAUDIT.type) = ' 11'