【发布时间】:2021-05-30 20:00:07
【问题描述】:
我使用的是SQL Server,我有一个查询返回所有字段的数据,主要是1个字段可以属于多条记录,记录ID区分它们。
我有一个这样的数据集。
我当前的查询:
Select fd.FieldName ,FV.FieldID, Data , R.RecordID from FieldValues FV
Inner Join Records R on R.RecordID = FV.RecordID
Inner Join Forms F On f.FormID = R.FormID
Inner join Fields fd on fd.FieldID = fv.FieldID
Where R.RecordID IN (45,46)
我需要像这样创建属于同一 RecordID 的每一列的 1 行。
Service Name Location city VendorCode RecordID
Raj ABC LOCATION ABC CITY 32 45
BEN ABC LOCATION ABC CITY -- 46
以上是我想要的输出。
我尝试过使用 pivot 但没有成功。
【问题讨论】:
-
你的尝试是什么?你忘了包括它。但是,理想情况下,修复您的设计;这种类型的设计在 RDBMS 中很少工作或表现良好。
-
我的项目中有很多表单,所以我用动态表单创建了它
-
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
-
那你需要写很多动态SQL @FaizanNaeem。我怀疑您是否想这样做,就好像您知道该怎么做一样,您就不会问自己的问题。修复您的设计并使用标准化方法。
标签: sql sql-server database pivot