【发布时间】:2016-02-15 13:28:35
【问题描述】:
我正在尝试创建一个临时表并为该表显示:每年的结果计数 |每周计数 |每天都在同一行计数。
所以第一行应该是这样的。
8 | 3 | 0 所以这是在年、周、日添加的所有记录
这是我的 php 代码来完成此操作,但它不允许我选择计数并将它们插入表中。
// Create temporary table
$sql = "CREATE TEMPORARY TABLE temp_overview(
company varchar(50),
countYearly int,
countWeekly int,
countDaily int
)";
$stmt = $conn->prepare($sql);
if(!$stmt->execute()){
echo "Failed first";
}
// Insert into temp table
$sql = "INSERT INTO temp_overview(countYearly, countWeekly, countDaily)
SELECT
(SELECT count(*) FROM client_companies WHERE YEAR(date_added) = YEAR(CURDATE())) AS companyCountY,
(SELECT count(*) FROM client_companies WHERE DATE(date_added) >= DATE(DATE_SUB(NOW(), INTERVAL 7 DAY))) AS companyCountW,
(SELECT count(*) FROM client_companies WHERE DAY(date_added) = DAY(CURDATE())) AS companyCountD
FROM
client_companies";
$stmt = $conn->prepare($sql);
if(!$stmt->execute()){
echo "Failed second";
}
第二个 sql 语句失败了如何将选定的计数添加到临时表的单行中?
【问题讨论】:
-
这是
mysql还是sql-server?它们不是一回事。 -
mysql 对不起,我没有看到我标记了那个。
-
你的错误信息是什么?
-
好吧,在我的测试中,它的第二次失败了。它与那个查询有关。这是 mysql 错误:#1054 - 'field list' 中的未知列 'countWeekly'
-
没关系,我没有使用正确的列名。现在虽然它给了我 8 个结果?它应该只给我一个正确的结果集?