我必须从一列中选择数据,然后将这些值显示为另一列。但问题是,在我的专栏里,总是会有新的数据出现,新的细胞被创造出来。
产品目录:
ID NAME
1 apple
2 orange
销售表格:
ID PRODUCT_ID DATE
1 1 2020-06-12
2 1 2020-05-03
3 2 2020-01-01
4 1 2020-07-23
我想要什么
NAME SELLING_DATE_1 SELLING_DATE_2 SELLING_DATE_3
APPLE 2020-06-12 2020-05-03 2020-07-23
ORANGE 2020-01-01 NULL NULL
当selling表中有一个新日期时,我希望我的sql动态地创建另一个selling表。正如您所注意到的,如果没有用null填充的销售日期数据,或者我们可以替换基本文本,如“not sell”
2条答案
按热度按时间3qpi33ja1#
可以使用窗口函数和条件聚合:
可以用更多的列(即更多的条件列)展开查询
max()
s) 处理更多的约会。vof42yt12#
我真的认为那样解决你的问题是不实际的。
你可以尝试以下几点:
每次销售只需选择一个产品,即加入它们,实际上,这几乎等同于替换产品中的id
selling_table
产品名称。这会给你一些类似的东西:您可以尝试同时选择每个产品的所有日期,并将它们显示为字符串(如果您是sql新手,则可能需要进行一些研究和工作)。这个答案做一个有点类似的问题可能会对你有所帮助。
也许你是从某个更高层次的程序中调用这个?例如,如果您使用c#,您可能可以很容易地操纵使用linq得到的任何结果。不过,这完全取决于大局如何,以及你想如何呈现最终结果。
为此,如果您可以用有关总体架构的更多信息来更新您的问题,这将非常有用。