我有两个数据表,我需要在一个SQL Server查询中连接在一起 - 一个包含事务信息,另一个包含已针对事务回答的市场营销问题。旋转未定义的文本列
这里是一个精简的例子:
-------------------------------------------
| Transaction Info |
|-------------------------------------------|
|Transaction_ID |Date |Customer_ID|
|1 |2016-01-01 |2614 |
|2 |2016-04-16 |3981 |
|3 |2016-06-25 |2113 |
-------------------------------------------
------------------------------------------------------------------
| Marketing Questions |
|------------------------------------------------------------------|
|Transaction_ID |Question |Answer |
|1 |How would you rate our service? |Excellent |
|2 |Would you recommend us? |Yes |
|2 |Where did you hear about us? |Friend |
|1 |Any other comments? |None |
|3 |How would you rate our service? |Average |
|2 |Any other comments? |None |
------------------------------------------------------------------
这里就是我坚持:我需要转动的营销表中的问题,成为列名在最后的连接表,在单元格的值是答案。
问题是,问题是从一个非常大的集合随机化的,所以我无法在查询中定义它们。它需要动态捕获表中返回的所有问题,将它们生成为列,然后在单元格中填充答案。
营销表本身就是日期范围查询的结果,因此包含的问题并不总是相同的。这就是为什么我不能提前将它们定义在PIVOT中的原因。
我真的不知道从哪里开始,所以任何帮助都非常感谢!
哎哟...它看起来像您的MarketingQuestions严重需要正常化。一遍又一遍地重复提问并不是最好的设计。话虽如此,你试图完成的事情听起来像是一个动态的关键。这里已经有数百次和数百次的问答。 –
我最近使用递归类做了一些事情。我需要在计算机上写下代码和测试,但是请稍等片刻 – Merenix
如果应用程序最终是10%DBMS代码和90%支持代码,旨在解决DBMS功能中的缺陷,然后(a)选择不同的DBMS或(b)首先不使用DBMS。 DBMS旨在使任务更简单,而不是更复杂。如果不是,那么显然不合适,并且不适合当前的任务。 –