在结构化网页上显示SQL结果

时间:2013-08-06 14:11:52

标签: php sql sql-server web asp-classic

好的,这里有点难题。

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

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

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

image

网络服务器是一个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是保存团队名称的字段(即团队1,团队2等)。 sched_date是工作日期。

如何解决这个问题?

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

1 个答案:

答案 0 :(得分: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

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