想实现如附件中要求的查询如何做到?
时间:2011-05-10
来源:互联网
利用表一及表二中的信息,表一与表二中的合同号有关系,为一对多的关系,现想做一个如表三内容的查询。
要求:1、查询中的“合同号”只显示表一中“合同类型”为“国外设备”的合同号;
2、查询中其他合同基本信息均从表一中对应;
3、查询中“付款日期”为表二中对应合同号的最近的付款日期,即最大的日期;
4、查询中“付款金额”为表二中对应合同号的付款金额之和;
5、查询中“到货日期”为最近到货的日期,即为最大的日期;
6、查询中的“最迟装运日期”为表二中对应合同号的最大付款日期对应的最迟装运日期;
7、查询中的“货物名称”及“备注”为表二中的同一合同号的对应内容的合并。
请问第6及第7条要求如何实现?(1-5已实现)
合同执行情况查询.rar(17.29 KB)
要求:1、查询中的“合同号”只显示表一中“合同类型”为“国外设备”的合同号;
2、查询中其他合同基本信息均从表一中对应;
3、查询中“付款日期”为表二中对应合同号的最近的付款日期,即最大的日期;
4、查询中“付款金额”为表二中对应合同号的付款金额之和;
5、查询中“到货日期”为最近到货的日期,即为最大的日期;
6、查询中的“最迟装运日期”为表二中对应合同号的最大付款日期对应的最迟装运日期;
7、查询中的“货物名称”及“备注”为表二中的同一合同号的对应内容的合并。
请问第6及第7条要求如何实现?(1-5已实现)
附件

2011-5-10 15:46, 下载次数: 4
作者: yuna_5689 发布时间: 2011-05-10
6、
SELECT a.合同号, a.付款日期, a.最迟装运日期
FROM 表2:付款及到货情况 A where a.付款日期=(select max(付款日期) from 表2:付款及到货情况 where 合同号=a.合同号)
7、Access多行合并成一行的实现
Public Function concateColumn(sTable As String, sRow As String, sCol As String, vRow As String, Optional delimiter As String = "")
Dim dbsNorthwind As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
Dim sResult As String
Dim i As Integer
sResult = ""
sSQL = "select " & sCol & " from " & sTable & " where " & sRow & "=""" & vRow & """"
Set dbsNorthwind = CurrentDb
Set rs = dbsNorthwind.OpenRecordset(sSQL, dbOpenDynaset)
For i = 0 To rs.RecordCount - 1
If i = rs.RecordCount - 1 Then
sResult = sResult & rs.Fields(0).Value
Else
sResult = sResult & rs.Fields(0).Value & delimiter
End If
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
Set dbsNorthwind = Nothing
concateColumn = sResult
End Function
调用:
SELECT 查询5.规格, concateColumn('查询5','规格','名称',规格,"/") AS 合并的名称
FROM 查询5;
SELECT a.合同号, a.付款日期, a.最迟装运日期
FROM 表2:付款及到货情况 A where a.付款日期=(select max(付款日期) from 表2:付款及到货情况 where 合同号=a.合同号)
7、Access多行合并成一行的实现
Public Function concateColumn(sTable As String, sRow As String, sCol As String, vRow As String, Optional delimiter As String = "")
Dim dbsNorthwind As DAO.Database
Dim rs As DAO.Recordset
Dim sSQL As String
Dim sResult As String
Dim i As Integer
sResult = ""
sSQL = "select " & sCol & " from " & sTable & " where " & sRow & "=""" & vRow & """"
Set dbsNorthwind = CurrentDb
Set rs = dbsNorthwind.OpenRecordset(sSQL, dbOpenDynaset)
For i = 0 To rs.RecordCount - 1
If i = rs.RecordCount - 1 Then
sResult = sResult & rs.Fields(0).Value
Else
sResult = sResult & rs.Fields(0).Value & delimiter
End If
rs.MoveNext
Next i
rs.Close
Set rs = Nothing
Set dbsNorthwind = Nothing
concateColumn = sResult
End Function
调用:
SELECT 查询5.规格, concateColumn('查询5','规格','名称',规格,"/") AS 合并的名称
FROM 查询5;
作者: marco 发布时间: 2011-05-10
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28