好的,这里有点难题。
我有一个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
是保存团队名称的字段(即团队1,团队2等)。
sched_date
是工作日期。
如何解决这个问题?
我有一个只显示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
如果您的问题更多的是关于如何构建查询,那么在这里发布这个问题可能太大了。您可能必须执行多个查询(每行一个,每列一个,或表中每个数据单元一个),具体取决于表的结构以及您尝试执行的操作。