javascript - 显示包含日期和其他记录的表

标签 javascript php sql-server date

我想显示特定表(加类)中的所有数据条目,该表有 3 列(日期、数字和注释)。我想总结第 1、2、3 和 4 周的所有数字。

日期数量评论

2015年7月1日9
02-07-2015 0
2015年3月7日 10
2015年4月7日 8

27

2015-05-07 8
2015年6月7日 8
2015年7月7日 9
2015年8月7日 10
2015年9月7日 8
10-07-2015 0
11-07-2015 0

43

2015年7月12日8
2015年7月13日 8
2015年7月14日 9
2015年7月15日 10
2015年7月16日 8
17-07-2015 0
18-07-2015 0

43

下面是我的代码片段。请问,我在哪里合并您的 代码?

$query="SELECT name, timestamp, number, comment FROM table WHERE
name = '$valid_user' and timestamp between '$start_date' and '$end_date'"; 
$params = array($_REQUEST['query']); 
$result = sqlsrv_query($conn, $query, $params);

echo "<p><table id='t01' border='1'>

<th style='width: 10px'>Date </th> 
<th style='width: 5px'>Number</th>
<th style='width: 100px'>Comment</th> 

</tr>";

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))  {    
    echo "<tr>";
    echo '<td><a href=#.php?id='.strip_tags($row['id']).'>'  . date( 'd M Y', strtotime(strip_tags($row['timestamp']))). "</td>";

    echo "<td>" . strip_tags($row['number']). "</td>";
    echo "<td>" . strip_tags($row['comment']). "</td>";
    echo '<td><a href="#.php?id=' . strip_tags($row['id']). '">Edit/Delete</a></td>';
    echo "</tr>";
    echo "</tr>";         }

非常感谢您的帮助。

提前致谢。

最佳答案

以下是可用于按周分组的模板:

DECLARE 
  @Year int = 2015,
  @Month int = 7

DECLARE @StartDate DATE = dateadd(mm, (@Year - 1900) * 12 + @Month - 1, 0)
DECLARE @EndDate DATE = dateadd(mm, (@Year - 1900) * 12 + @Month, -1)

;WITH tally AS (
    SELECT (row_number() OVER(ORDER BY (SELECT 0))) - 1 AS N
    FROM master.dbo.syscolumns sc1)
SELECT 
    --d,
    wknr
FROM 
    tally
    CROSS APPLY(
        SELECT 
            d = DATEADD(DAY, N, @StartDate),
            wknr = DATEPART(wk, DATEADD(DAY, N, @StartDate))) dates
WHERE d < @EndDate
GROUP BY wknr
ORDER BY wknr

编辑

我建议您根据您的需要定制提供的查询模板。我在您的 PHP 代码中看到您需要字段名称、时间戳、数字、注释,因此查询可能应该返回它们。

下一步是将旧查询替换为新查询。相应地传递日期参数。

我想你可以使用类似的东西:

;WITH tally AS (
    SELECT (row_number() OVER(ORDER BY (SELECT 0))) - 1 AS N
    FROM master.dbo.syscolumns sc1)
SELECT 
    wknr,
    number = SUM(t.number)
FROM 
    tally
    CROSS APPLY(
        SELECT 
            d = DATEADD(DAY, N, @StartDate),
            wknr = DATEPART(wk, DATEADD(DAY, N, @StartDate))) dates
    JOIN table t
        ON t.timestamp = d
WHERE d < @EndDate
GROUP BY wknr
ORDER BY wknr

关于javascript - 显示包含日期和其他记录的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31580530/

相关文章:

php - 为什么我的 sql 查询会删除关联数组中的列标题?

javascript - 使用 JSON 和 AJAX 从数据库中提取信息

Python 3.6 pyodbc to SQL 如何执行SP

sql-server - SQL Server - 我“真正”需要多少用户?

javascript - jQuery - 在触发警报之前等待变量更新

javascript - CallExpression 和 MemberExpression 的区别

javascript - 从 ng-repeat 中删除元素,但将其 HTML 保留在 dom 中

javascript - Node.js 读写文件行

php - 将 PHP/mySQL 网络应用程序转换为离线 PC 应用程序

sql-server - 无法远程或通过 IP 访问 SQL Server,但可以使用 localhost 或计算机名在本地访问它