Php 如果条件为true,则在使用两个不同语句时使用CASE语句 我需要显示从表Market-wise检索的数据。对于每个市场,可以计算和显示订单数量和项目数量。我只有一个栏目,即市场,但我需要以水平方式显示市场
我已经尝试创建临时表来实现这一点。不管怎样,我得到了结果,但并不准确Php 如果条件为true,则在使用两个不同语句时使用CASE语句 我需要显示从表Market-wise检索的数据。对于每个市场,可以计算和显示订单数量和项目数量。我只有一个栏目,即市场,但我需要以水平方式显示市场,php,mysql,Php,Mysql,我已经尝试创建临时表来实现这一点。不管怎样,我得到了结果,但并不准确 $MarketQry="SELECT DISTINCT `Market` FROM `orders`"; $MarketResult=mysql_query($MarketQry,$con); $OrdersQry=""; while($mvalue=mysql_fetch_array($MarketResult)) { $OrdersQry.="CASE WHEN `M
$MarketQry="SELECT DISTINCT `Market` FROM `orders`";
$MarketResult=mysql_query($MarketQry,$con);
$OrdersQry="";
while($mvalue=mysql_fetch_array($MarketResult))
{
$OrdersQry.="CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Count`) ELSE 0 END AS `".$mvalue['Market']." -Number of Orders`, CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Records`) ELSE 0 END AS `".$mvalue['Market']." -Number of Order Line Items`,";
}
$createqry="CREATE TEMPORARY TABLE `temp_order_market` AS
SELECT ".$OrdersQry."`OrderDate` FROM
(SELECT COUNT(DISTINCT `OrderID`) AS `Count`,COUNT(`OrderID`) AS `Records`,`OrderDate`,`Market`
FROM `orders`
WHERE (`OrderDate` BETWEEN '$StartDate' AND '$EndDate')
GROUP BY `OrderDate`)
) AS `dummy` GROUP BY `OrderDate` ORDER BY `OrderDate` DESC";
echo $createqry."<br /><br />";
$resQry=mysql_query($createqry,$con) or die(mysql_error($con));
$selectqry="SELECT * FROM `temp_order_market`";
现在我的问题是:
SELECT SUM(`Count`) AS `Orders`,SUM(`Records`) AS `Records`,`OrderDate` FROM
(SELECT COUNT(DISTINCT `OrderID`) AS `Count`,COUNT(`OrderID`) AS `Records`,`OrderDate`
FROM `orders`
WHERE (`OrderDate` BETWEEN '2015-01-01' AND '2015-01-31') AND `Market`='$MarketName'
GROUP BY `OrderDate`)) AS `dummy` GROUP BY `OrderDate` ORDER BY `OrderDate` DESC";
$OrdersQry.="CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Count`) ELSE 0 END AS `".$mvalue['Market']." -Number of Orders`, CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Records`) ELSE 0 END AS `".$mvalue['Market']." -Number of Order Line Items`,";
$OrdersQry.="SUM(CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Count`) ELSE 0 END) AS `".$mvalue['Market']." -Number of Orders`, SUM(CASE WHEN `Market`='".$mvalue['Market']."' THEN SUM(`Records`) ELSE 0 END) AS `".$mvalue['Market']." -Number of Order Line Items`,";