Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
从多个表获取数据,mssql,php,apache_Php_Sql_Sql Server_Apache - Fatal编程技术网

从多个表获取数据,mssql,php,apache

从多个表获取数据,mssql,php,apache,php,sql,sql-server,apache,Php,Sql,Sql Server,Apache,正在为我们的呼叫中心创建我自己的报告/统计页面 Table 1 (agent) CODE....NAME AXA apple bottom AXB apple pear Table 2 (stat) AGENT.....CAMPAIGN....CALLS....PITCHES.....TALKTIME......dialdate AXA CCC 5 2 90(sec) 2-2-2013 AXA

正在为我们的呼叫中心创建我自己的报告/统计页面

Table 1 (agent)
CODE....NAME
AXA     apple bottom
AXB     apple pear

Table 2 (stat)
AGENT.....CAMPAIGN....CALLS....PITCHES.....TALKTIME......dialdate 
AXA       CCC         5        2           90(sec)       2-2-2013
AXA       DDD         5        2           20(sec)       2-2-2013 
AXB       DDD         1        1           20(Sec)       2-2-2013

Table 3 (result_CCC)
AGENTID.....lcdate......samount.....upamt......termcd
AXA         2-2-2013    $10         $5         SA

Table 4 (result_DDD)
AGENTID.....lcdate......samount.....upamt......termcd
AXA         2-2-2013    $0          $0         BN
AXB         2-2-2013    $0          $0         NI
我想显示我的表格如下

Agent Name  ---  Calls ---- Pitches --- talktime --- samount --- upamt
Apple Bottom     10         4           110(sec)     $10         $5
但是,电话必须是当天所有电话的总和,而不仅仅是竞选活动的电话,而且与TERMCD无关 但投球必须是当天所有投球的总和,而不仅仅是通过竞选活动,也不与TERMCD挂钩 但通话时间必须是当天所有通话时间的总和,而不仅仅是通过竞选活动,也不与术语CD挂钩 samount必须是当天所有termcd=SA的总和 upamt必须是当天所有termcd=SA的总和

这是我现在使用的字符串,它仍然缺少一些项目:

SELECT agent.name, stats.agent, SUM(stats.calls) AS sumcalls, SUM(stats.pitches) AS     sumpitches, SUM(stats.talktime) AS sumtalktime, SUM(stats.wrapuptime) as sumwrapuptime, SUM(stats.dialtime) as sumdialtime, (SUM(stats.wrapuptime) + SUM(stats.talktime) + sum(stats.dialtime)) as sumtotal
FROM dbo.stats 
     INNER JOIN dbo.agent ON agent.code = stats.agent
WHERE (stats.agent !='' and stats.dialdate = '".($_GET['datetime'])."') and (stats.campaign = '".($_GET['camp_select'])."' or stats.campaign = '')
GROUP BY agent.name, stats.agent
ORDER BY SUM(stats.talktime) ASC";
我关心的是,当我开始添加WHERE termcd='SA',然后我的呼叫、音调、通话时间等等。。。。也将更改,但这些列不必受TERMCD='SA'函数的影响


有人能解释一下吗?

您需要一个条件求和:

select . . .
       sum(case when termcd = 'SA' then samount end) as sa,
       sum(case when termcd = 'SA' then upamount end) as up
. . .

也就是说,不要根据where子句中的条件进行筛选。只需将逻辑作为条件和放入即可。

很抱歉,无法确定如何格式化我的表以使其看起来更好、更具可读性。能否在此处创建选项卡示例:。这样就更容易处理查询了。看起来您需要子选择。所以从1=1的表格中选择一些内容。谢谢webnoob…已经研究了子选项,不确定我是否100%理解它们。谢谢Gordon,我会尝试这个