Php 将不同SQL access记录的值放入1
我是新来的,我想得到一些帮助来解决Access SQL数据合并问题 实际上我想把这个Php 将不同SQL access记录的值放入1,php,sql,database,ms-access,ms-access-2007,Php,Sql,Database,Ms Access,Ms Access 2007,我是新来的,我想得到一些帮助来解决Access SQL数据合并问题 实际上我想把这个 Customer Comment James Good James Bad James Good James Ugly 为此: Customer Comments James Good, Bad, Good, Ugly 我需要将同一客户的所有注释连接到一个没有VBA的字段中,因为我正在使用PHP执行查询 谢谢那么。。。我知道如
Customer Comment
James Good
James Bad
James Good
James Ugly
为此:
Customer Comments
James Good, Bad, Good, Ugly
我需要将同一客户的所有注释连接到一个没有VBA的字段中,因为我正在使用PHP执行查询
谢谢那么。。。我知道如何正确连接评论,但我不确定如何吸引客户。我也不确定这是否能在Access中工作,因为Access不支持存储过程
DECLARE @Comments VARCHAR(8000)
SELECT @Comments = COALESCE(@Comments + ', ', '') + Comments FROM Customers
我猜您必须为多个客户执行此操作,但我所能想到的就是为每个客户使用游标,但我不知道Access目前是否支持游标
DECLARE @Comments VARCHAR(8000)
SELECT @Comments = COALESCE(@Comments + ', ', '') + Comments
FROM Customers
WHERE Customer = @Customer (i.e. James, from the cursor)
老实说,我想你已经被困在PHP中了
SELECT * FROM CUSTOMERS ORDER BY Customer, Comment
然后简单地循环遍历记录集,当客户发生更改时,为下一个客户重置Comments变量。最好的方法是从数据库加载所有匹配的行,并在PHP中连接它们 使用自定义函数,您可以获得执行此操作的权限,但效率很低:
Public Function CommentsForCustomer(Customer As String)
Dim sql As String
sql = "select [Comment] from Comments where Customer = '" & Customer & "'"
Dim rs As New ADODB.Recordset
rs.Open sql, CurrentProject.Connection, adOpenSnapshot
Dim text As String
text = ""
Do Until rs.EOF
If Len(text) > 0 Then
text = text & ", "
End If
text = text & rs.Fields("Comment")
rs.MoveNext
Loop
rs.Close
CommentsForCustomer = text
End Function
然后在查询中包含表达式
CommentsForCustomer([Customer])
。有一种相当糟糕的方法。您的表有多大?在MS Access SQL中没有声明或合并。@HansUp-这就是我担心的。。。可能将Access表移植到Microsoft免费版SQL?好的。我在想,在将数据发送到PHP之前,任何数据库都可以进行连接。如果他因为任何原因被锁定,你答案的最后一部分对我来说很好。。。但我实际上并不使用PHP.:-)我是用PHP做的:)Thnak她用PHP从Access检索数据。Access本身(MSACCESS.EXE)未运行,这意味着他的查询无法使用用户定义的函数。