0

好的,这里有一个难题。

我有一个不想在网页上显示的 SQL 查询。我遇到的问题是让它以所需的格式显示结果。

它本质上是一个每周的工作计划,分成几天,并由每个安装团队分组。每个团队每天的工作数量可以从无到 3 或 4 个不等。SQL 查询从一个大列表的基础中提取工作数据(如我所料) - 没有问题。

难题是让它以特定格式显示在网页上——就是这样

图片

网络服务器是一个 IIS windows 服务器,但安装了 PHP,所以可以使用 ASP/VB 或 PHP。

这是查询:

SELECT  Pers_Name
    ,   PER_Data7
    ,   Call_Ref
    ,   dbo.dateonly(Scheduled_Date_Time) AS sched_date
    ,   Link_to_Contract_Header
    ,   Add1
    ,   Add2
    ,   Post_Code
    ,   Call_Type_Description
    ,   LUCFC_Description
    ,   Call_Status_Description
FROM Calls WITH (NOLOCK)
INNER JOIN Clients WITH (NOLOCK) ON Link_to_Client = Client_Ref
LEFT JOIN Personnel WITH (NOLOCK) ON Last_Allocated_To = Pers_Ref
LEFT JOIN LU_Call_Types WITH (NOLOCK) ON Call_Type = Call_Type_Code
LEFT JOIN Personnel_More WITH (NOLOCK) ON Last_Allocated_To = PER_Link_to_Pers_Ref
LEFT JOIN LU_Call_Fault_codes WITH (NOLOCK) ON call_fault_code_1 = LUCFC_Code
LEFT JOIN LU_Call_Status WITH (NOLOCK) ON Last_Event_Status = Call_Status_Code
WHERE dbo.dateonly(Scheduled_Date_Time) BETWEEN '5 August 2013' AND '11 August 2013'
    AND Call_Type IN ('BC', 'IN')
    AND PER_Data7 IS NOT NULL
ORDER BY sched_date, PER_Data7

PER_Data7是保存团队名称的字段(即 Team 1、Team 2 等)。 sched_date是工作的日期。

如何解决这个问题?

我有一个工作版本,它只显示 1 天的时间表,但其结构完全不同且非常基本,并且会被废弃。

4

1 回答 1

0

我没有研究您的查询并将其与表格进行比较以验证记录是否按照您想要显示它们的顺序出现,但我会假设它们是并且我会假设它们不是,你知道如何进行这些更改。

因此,基本思想是迭代您的结果并将每个字段输出到 HTML 表中。我使用 ASP,所以它看起来像这样:

' Make the connection etc, then...
cmd.CommandText = "SELECT field1, field2 FROM table1 etc...."
Set recordSet = Server.CreateObject("ADODB.Recordset")
recordSet.Open cmdTemp, , adOpenKeyset, adLockReadonly

' If there are results, emit the table

if not recordSet.EOF then
    Response.Write "<table><tr><td><b>Heading1</b><td><b>Heading2</b></td>...</tr>"

    ' While there is another record to process, emit each row

    do while not recordSet.EOF
         Response.Write "<tr><td>" & recordSet("field1") & "</td><td>" & recordSet("field2") & "</td>...</tr>"

         ' Get the next record

         recordSet.MoveNext
    loop

    ' Finish the table

   Response.Write "</table>"
end if

如果您的问题更多是关于如何构建查询,那么在此处发布的问题可能太大了。您可能需要执行多个查询(每行一个、每列一个或表格中的每个数据单元格一个),具体取决于您的表格的结构以及您要执行的操作。

于 2013-08-08T16:00:22.040 回答