【发布时间】:2021-03-25 13:19:21
【问题描述】:
我正在处理一个产品页面,我必须一次查询所有数据,并且其中一列应该包含多个值。在这种特殊情况下,它是包含多张图片的产品列表。不幸的是,我不能压缩同一列中的所有图片以便稍后对其进行切片,因为数据将在 XML.CONFIG 页面中处理,该页面使用 for-each 处理数据。这就是我所拥有的。
简而言之,如果有一种方法可以选择数据,每条记录都有一个“子列表”。
示例...
产品表:
Id ProdId Desc
1 9003 Shirt
2 9004 Trouser
图片表:
Id PicId ProdId
1 A 9003
2 B 9003
3 C 9004
4 D 9004
5 E 9003
查询结果:
ProdId Desc PicId
9003 Shirt
A
B
E
9004 Trouser
C
D
我知道这听起来很疯狂,但我记得大约 20 年前,我在一个用于教会管理的 VB 程序中使用 SQL Server Express 和 Crystal Reports 做了类似的事情。我们有一份报告列出了会众成员,并将他们的捐款分组在每个成员下面。我确信我所做的一切都是运行一个 SQL 查询来完成这项工作,但这是很久以前的事了,我不记得它是如何完成的。
有什么想法吗?
补充说明:
我只记得在我使用命令“SHAPE”时。我在 T-SQL 文档中找到了一个示例,但不知道为什么它不起作用。我的代码:
SHAPE {SELECT ProdId,Desc FROM product} AS PRO
APPEND ({SELECT PicId FROM pics} AS PIC
RELATE PRO.ProdId TO PIC.ProdId)
这很奇怪。我的做法与示例完全相同,但它说 } 附近有一个 sintax 错误。
T-SQL 文档: https://docs.microsoft.com/mt-mt/sql/ado/guide/data/shape-append-clause?view=sql-server-2017
【问题讨论】:
-
这是表示层的任务,而不是 RDBMS。
-
“T-SQL 文档:” 这不是 Transact-SQL 文档;这是给 ADO 的。
-
哎呀,是的,我完全错过了这个! :-( 谢谢,我会尝试另一种方法
-
PS:将其发布为答案,以便我可以接受它已解决。我相信它会为您带来一些价值。 ;-)
-
我还没有在这里给出答案来发一个,严。