SQL: Выбрать динамически созданные значения в виде столбца - PullRequest
0 голосов
/ 16 июня 2020

Мне нужно выбрать данные из столбца, а затем показать эти значения как другие столбцы. Но борьба в том, что внутри моего столбца всегда будут поступать новые данные и будут созданы новые ячейки.

Product_Table:

ID   NAME
1    apple
2    orange

Selling_Table:

ID   PRODUCT_ID   DATE
1    1            2020-06-12
2    1            2020-05-03
3    2            2020-01-01
4    1            2020-07-23

What I Хочу

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

Когда в таблице продаж есть новая дата, я хочу, чтобы мой SQL динамически создавал еще одну SELLING_DATE. Как вы заметили, когда нет данных SELLING_DATE, заполненных нулем, или мы можем заменить текст basi c, например, 'not sold'

Ответы [ 2 ]

1 голос
/ 16 июня 2020
• 1000
0 голосов
/ 16 июня 2020

Я действительно не думаю, что решение вашей проблемы таким образом практично.

Вместо этого вы можете попробовать несколько вещей:

  • Просто выберите каждый продукт один раз для каждой продажи, т.е. присоединиться к ним, что на практике почти то же самое, что заменить идентификаторы в вашем selling_table названиями продуктов. Это должно дать вам что-то вроде:
  PRODUCT    SELLING DATE
  apple      2020-06-12
  apple      2020-05-12
  apple      2020-07-23
  orange     2020-01-01

  • Вы можете попробовать выбрать все даты для каждого продукта вместе и отобразить их в виде строки (может потребоваться некоторое исследование и работа, хотя, если вы новичок в SQL). Этот ответ на несколько похожий вопрос может вам помочь.

  • Возможно, вы вызываете это из какой-то программы более высокого уровня? Если вы используете, например, C#, вы, вероятно, можете легко управлять любым полученным результатом, например, с помощью LINQ. Все зависит от того, как будет выглядеть общая картина и как вы хотите представить свой окончательный результат.

С этой целью было бы полезно, если бы вы могли обновить свой вопрос, добавив больше информации о вашей общей архитектуре.

...