Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL按日期求和与联接的表_Php_Mysql_Count_Sum - Fatal编程技术网

Php MySQL按日期求和与联接的表

Php MySQL按日期求和与联接的表,php,mysql,count,sum,Php,Mysql,Count,Sum,我有两个不同的表,下面是查询中使用的表的结构: 线索: - id - date_added - website 作业: - id - id_lead - date_assigned - website 我想做的是根据日期范围计算每个网站的Lead和assignments表中的行数。例如,我需要对today进行计数,这将为我提供每个网站today的总行数 我要查找的日期范围如下: Today Yesterday 2 Days Ago 3 Days Ago 4 Days Ago 5 Days A

我有两个不同的表,下面是查询中使用的表的结构:

线索

- id
- date_added
- website
作业

- id
- id_lead
- date_assigned
- website
我想做的是根据日期范围计算每个网站的
Lead
assignments
表中的行数。例如,我需要对
today
进行计数,这将为我提供每个网站
today
的总行数

我要查找的日期范围如下:

Today
Yesterday
2 Days Ago
3 Days Ago
4 Days Ago
5 Days Ago
6 Days Ago
7 Days Ago
This Week
This Month
Last Month
This Year
所以我想显示每个网站所有行的总和或计数

这是我已经查询过的查询,但它没有正确计数,并且没有联接:

select `website`, 
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now(), '%Y-%m-%d') then 1 else 0 end) AS c_day,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 1 day, '%Y-%m-%d') then 1 else 0 end) AS c_yesterday,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 2 day, '%Y-%m-%d') then 1 else 0 end) AS c_2_days,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 3 day, '%Y-%m-%d') then 1 else 0 end) AS c_3_days,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 4 day, '%Y-%m-%d') then 1 else 0 end) AS c_4_days,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 5 day, '%Y-%m-%d') then 1 else 0 end) AS c_5_days,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 6 day, '%Y-%m-%d') then 1 else 0 end) AS c_6_days,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m-%d') = date_format(now() - interval 7 day, '%Y-%m-%d') then 1 else 0 end) AS c_7_days,
sum(case when YEARWEEK(FROM_UNIXTIME(`date_assigned`)) = YEARWEEK(CURDATE()) then 1 else 0 end) AS c_week, 
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m')= date_format(now(), '%Y-%m') then 1 else 0 end) AS c_month,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y-%m')= date_format(now() - interval 1 month, '%Y-%m') then 1 else 0 end) AS c_last_month,
sum(case when date_format(from_unixtime(`date_assigned`), '%Y')= date_format(now(), '%Y') then 1 else 0 end) AS c_year
from `assignments`
where `id_dealership`!='65' and `id_dealership`!='77' and `id_dealership`!='89'
group by `website`
order by `website` asc
以下是用于查询的PHP,它将查询结果转换为我想要的表格式:

echo '<table cellpadding="10" cellspacing="1" border="0" width="100%">';
echo '<tr>';
echo '<th class="l">Website</th>';
echo '<th>Today</th>';
echo '<th>Yesterday</th>';
echo '<th>2 Days Ago</th>';
echo '<th>3 Days Ago</th>';
echo '<th>4 Days Ago</th>';
echo '<th>5 Days Ago</th>';
echo '<th>6 Days Ago</th>';
echo '<th>7 Days Ago</th>';
echo '<th>This Week</th>';
echo '<th>This Month</th>';
echo '<th>Last Month</th>';
echo '<th>This Year</th>';
echo '</tr>';

$count = 1;
$c_day_total = 0;
$c_yesterday_total = 0;
$c_2_days_total = 0;
$c_3_days_total = 0;
$c_4_days_total = 0;
$c_5_days_total = 0;
$c_6_days_total = 0;
$c_7_days_total = 0;
$c_week_total = 0;
$c_month_total = 0;
$c_last_month_total = 0;
$c_year_total = 0;

while ($row = mysql_fetch_assoc($sql))
{
    foreach ($row as $k => $v)
        $$k = htmlspecialchars($v, ENT_QUOTES);

    if (!empty($website))
    {
        $website = '<a href="website.php?url='.$website.'">'.$website.'</a>';
        //$website = '<a href="http://'.$website.'">'.$website.'</a>';

        echo '<tr class="'.(($count % 2) ? 'row1' : 'row2' ).'">';
        echo '<td>'.$website.'</td>';
        echo '<td>'.$c_day.'</td>';
        echo '<td>'.$c_yesterday.'</td>';
        echo '<td>'.$c_2_days.'</td>';
        echo '<td>'.$c_3_days.'</td>';
        echo '<td>'.$c_4_days.'</td>';
        echo '<td>'.$c_5_days.'</td>';
        echo '<td>'.$c_6_days.'</td>';
        echo '<td>'.$c_7_days.'</td>';
        echo '<td>'.$c_week.'</td>';
        echo '<td>'.$c_month.'</td>';
        echo '<td>'.$c_last_month.'</td>';
        echo '<td>'.$c_year.'</td>';
        echo '</tr>';

        $c_day_total = $c_day_total + $c_day;
        $c_yesterday_total = $c_yesterday_total + $c_yesterday;
        $c_2_days_total = $c_2_days_total + $c_2_days;
        $c_3_days_total = $c_3_days_total + $c_3_days;
        $c_4_days_total = $c_4_days_total + $c_4_days;
        $c_5_days_total = $c_5_days_total + $c_5_days;
        $c_6_days_total = $c_6_days_total + $c_6_days;
        $c_7_days_total = $c_7_days_total + $c_7_days;
        $c_week_total = $c_week_total + $c_week;
        $c_month_total = $c_month_total + $c_month;
        $c_last_month_total = $c_last_month_total + $c_last_month;
        $c_year_total = $c_year_total + $c_year;
        $count++;
    }
}

echo '<tr class="'.(($count % 2) ? 'row1' : 'row2' ).'">';
echo '<td>Totals</td>';
echo '<td>'.$c_day_total.'</td>';
echo '<td>'.$c_yesterday_total.'</td>';
echo '<td>'.$c_2_days_total.'</td>';
echo '<td>'.$c_3_days_total.'</td>';
echo '<td>'.$c_4_days_total.'</td>';
echo '<td>'.$c_5_days_total.'</td>';
echo '<td>'.$c_6_days_total.'</td>';
echo '<td>'.$c_7_days_total.'</td>';
echo '<td>'.$c_week_total.'</td>';
echo '<td>'.$c_month_total.'</td>';
echo '<td>'.$c_last_month_total.'</td>';
echo '<td>'.$c_year_total.'</td>';
echo '</tr>';

echo '</table>';
echo';
回声';
回声“网站”;
回声“今天”;
回声“昨天”;
回音“2天前”;
回音“3天前”;
回音“4天前”;
回音“5天前”;
回音“6天前”;
回声“7天前”;
回声“本周”;
回声'这个月';
echo“上个月”;
回音“今年”;
回声';
$count=1;
$c_day_总计=0;
$c_昨天_总计=0;
$c_2_天_总计=0;
$c_3_天_总计=0;
$c_4_天_总计=0;
$c_5_天_总计=0;
$c_6_天_总计=0;
$c_7_天_总计=0;
$c_周_总计=0;
$c_月_总计=0;
$c_上个月_总计=0;
$c_年_总计=0;
while($row=mysql\u fetch\u assoc($sql))
{
foreach($k=>v的行)
$$k=htmlspecialchars($v,ENT_引号);
如果(!空($WEB))
{
$website='';
//$website='';
回声';
echo“.$website.”;
echo“.$c_日”;
回声“昨天$c_”;
echo“.$c_2_天”;
echo“.$c_3_天”;
echo“.$c_4_天”;
echo“.$c_5天”;
echo“.$c_6_天”;
echo“.$c_7天”;
回声“每周$c_”;
回音“.$c_月”;
回音“.$c_上个月”;
回音“每年$c_”;
回声';
$c_day_total=$c_day_total+$c_day;
$c_昨天_总计=$c_昨天_总计+c_昨天;
$c_2_天总数=$c_2_天总数+$c_2_天;
$c_3_天总数=$c_3_天总数+$c_3_天;
$c_4_days_total=$c_4_days_total+$c_4_days;
$c_5_days_total=$c_5_days_total+$c_5_days;
$c_6_天总数=$c_6_天总数+$c_6_天;
$c_7_days_total=$c_7_days_total+$c_7_days;
$c_week_total=$c_week_total+$c_week;
$c_month_total=$c_month_total+$c_month;
$c_last_month_total=$c_last_month_total+$c_last_month;
$c_year_total=$c_year_total+$c_year;
$count++;
}
}
回声';
回声“总计”;
echo“.$c_天_总计”;
echo“.$c_昨天总计”;
echo“.$c_2_天总计”;
echo“.$c_3天总计”;
echo“.$c_4天总计”;
echo“.总共$c_5天”;
echo“.$c_共6天”;
echo“总共$c_7天”;
echo“.$c_周总计”;
回音“.$c_月合计”;
回显“.$c_上个月总计”;
echo“.$c_年总计”;
回声';
回声';

非常感谢您的帮助。

我可以为您提供有关SQL查询这一部分的提示:

where `id_dealership`!='65' and `id_dealership`!='77' and `id_dealership`!='89'
您可以改为使用此代码:

where `id_dealership` NOT IN (65,77,89)

指定日期列的数据类型是什么。并且还添加了两个表的完整创建脚本