[英]PHP Returning Multiple Rows
當我在屏幕上回顯我的查詢並直接在SSMS中運行時,我返回了一行,這正是我想要的。 當我在php中運行此查詢時,我得到了多行返回(似乎對每個經銷商來說都是一個)。
我應該在此語法中進行哪些更改,以使我只有1行,而php中的總計顯示在屏幕上,就像SSMS中發生的情況一樣? ->而且,如果我將表格的結果復制/粘貼到Excel中以進行嘗試和排序,那么我所擁有的只是在表格中顯示0,而不是像直接在SSMS中查詢時看到的那樣的實際數據
{
$startdate = $_POST['startdate'];
$enddate = $_POST['enddate'];
$Dealer = $_POST['dealer'];
$option = array();
$option['driver'] = 'mssql';
$option['host'] = '192.5.100.23';
$option['user'] = 'username';
$option['password'] = 'passs';
$option['database'] = 'test';
$option['prefix'] = '';
$db = JDatabase::getInstance($option);
$query11 = $db->getquery11(true);
$query11 = "SELECT
MAX(A.Value1) AS Value1,
MAX(A.Value10) AS WorkinIT,
MAX(A.Value11) AS OTG
FROM
(
SELECT
ZT1.Dealer,
SUM(ISNULL(ZT1.[Value1],0)) AS Value1,
0 AS Value10,
0 AS Value11
FROM ROCK AS ZT1
WHERE ZT1.[PUD] >= '$startdate'
AND ZT1.[PUD] <= '$enddate'";
if ($Dealer != 'All') {
$query11 .= " AND ZT1.Dealer = '$Dealer'";
}
$query11 .= " GROUP BY ZT1.Dealer
UNION ALL
SELECT
ZT2.Dealer,
0 As Value1,
0 AS Value10,
0 AS Value11
FROM GALL ZT2
WHERE ZT2.[sellD] >= '$startdate'
AND ZT2.[sellD] <= '$enddate'";
if ($Dealer != 'All') {
$query11 .= " AND ZT2.Dealer = '$Dealer'";
}
$query11 .= " GROUP BY ZT2.Dealer
UNION ALL
SELECT
Dealer = RTRIM(LTRIM(dealer)),
0 As Value1,
SUM(ISNULL(abc,0)) AS Value10,
0 AS Value11
FROM WorkinIT AS C1
GROUP BY dealer
UNION ALL
SELECT
Dealer = RTRIM(LTRIM(dealer)),
0 As Value1,
0 AS Value10,
SUM(ISNULL(prs,0)) AS Value11
FROM eOTG AS C2";
if ($Dealer != 'All') {
$query11 .= " WHERE C2.Dealer = '$Dealer'";
}
$query11 .= " GROUP BY dealer) AS A";
}
echo $query11;
$db->setquery11($query11);
$query11 = $db->loadObjectList();
if ($query11)
{
?>
<table border="1">
<thead>
<tr>
<th>Value </th>
<th>OTG </th>
<th>WorkinIT </th>
</tr>
</thead>
<?php
foreach ($query11 as $res)
{
print "<tr>";
print "<td>" . "$" . round($res->Value1) . "</td>";
print "<td>" . "$" . round($res->WorkinIT) . "</td>";
print "<td>" . "$" . round($res->OTG) . "</td>";
print "</tr>";
}
}
編輯
這是上面的語法產生的echo
語句,可以在SSMS GUI中正常運行
SELECT Max(A.value1) AS Value1,
Max(A.value10) AS WorkinIT,
Max(A.value11) AS OTG
FROM (SELECT ZT1.dealer,
Sum(Isnull(ZT1.[value1], 0)) AS Value1,
0 AS Value10,
0 AS Value11
FROM rock AS ZT1
WHERE ZT1.[pud] >= '2017-06-01'
AND ZT1.[pud] <= '2017-06-22'
GROUP BY ZT1.dealer
UNION ALL
SELECT ZT2.dealer,
0 AS Value1,
0 AS Value10,
0 AS Value11
FROM gall ZT2
WHERE ZT2.[selld] >= '2017-06-01'
AND ZT2.[selld] <= '2017-06-22'
GROUP BY ZT2.dealer
UNION ALL
SELECT dealer = Rtrim(Ltrim(dealer)),
0 AS Value1,
Sum(Isnull(abc, 0)) AS Value10,
0 AS Value11
FROM workinit AS C1
GROUP BY dealer
UNION ALL
SELECT dealer = Rtrim(Ltrim(dealer)),
0 AS Value1,
0 AS Value10,
Sum(Isnull(prs, 0)) AS Value11
FROM eotg AS C2
GROUP BY dealer) AS A
$ db-> loadObjectList()是Joomla函數,它將返回行列表。 如果只需要一行,則應使用$ db-> loadObject()代替
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.