sql, который я хочу вычислить. неделя, основанная на 1-м дне каждого месяца. а также дата начала и окончания недели

#sql #sql-server

#sql #sql-сервер

Вопрос:

мои табличные данные

введите описание изображения здесь

я хочу вычислить столбец недели на основе даты начала месяца и столбца даты начала и окончания недели. ожидание данных также прилагается

введите описание изображения здесь

Комментарии:

1. Вам необходимо правильно отформатировать свои таблицы. Вам также необходимо объяснить, что вы пробовали.

2. пожалуйста, проверьте, что я его отформатировал. я хочу, чтобы таблица 1 и таблица 2 объединялись, а данные отображались как таблица 1, все записи

3. пожалуйста, проверьте еще раз мои данные таблицы 1 и таблицы 2. таблица 1 имеет коричневый цвет, но его не может быть в таблице 2, поэтому я хочу показать эту коричневую строку также, когда мы соединяем обе таблицы

4. Еще раз объясните, что вы пробовали и как связаны ваши таблицы.

5. у меня есть 5 записей в table1, OCStypeID и table2 styleid одинаковы. поэтому я хочу, чтобы при объединении обеих таблиц, чтобы запрос отображал 5record, отображался одинаково в таблице 1

Ответ №1:

Просто ОСТАЛОСЬ СОЕДИНИТЬ таблицу2 с таблицой1

 SELECT DISTINCT
  t1.OCStypeID
, t1.OCNum
, t1.ColorName
, t1.Orderqty
, COALESCE(CAST(t2.StyleID AS VARCHAR(30)), '') AS "StyleID"
, COALESCE(t2.ColorName, '') AS "ColorName" 
, COALESCE(t2.Material, '') AS "Material"
FROM Table1 AS t1
LEFT JOIN Table2 AS t2
  ON t2.StyleID = t1.OCStypeID
 AND t2.ColorName = t1.ColorName
 
OCStypeID OCNum ColorName Orderqty styleId ColorName Материал
220009069 106307.1 ЧЕРНЫЙ 200 220009069 ЧЕРНЫЙ Ткань- (ITL-FC)
220009069 106307.1 Синий 200 220009069 Синий Ткань- (ITL-FC)
220009069 106307.1 Коричневый 4
220009069 106307.1 ТЕМНО-ЗЕЛЕНЫЙ 240 220009069 ТЕМНО-ЗЕЛЕНЫЙ Ткань- (ITL-FC)
220009069 106307.1 БЕЛЫЙ 20 220009069 БЕЛЫЙ Ткань- (ITL-FC)

Демонстрация в db<>скрипка здесь

Комментарии:

1. все еще коричневый цветназвание не подходит OCStypeID OCNum Цветназвание Orderqty styleId StyleColorName Материал 220009069 106307.1 ЧЕРНЫЙ 100 220009069 ЧЕРНАЯ ткань — (ITL-FC) 220009069 106307.1 СИНИЙ 100 220009069 СИНЯЯ ткань- (ITL-FC) 220009069 106307.1 ТЕМНО-ЗЕЛЕНЫЙ 6 220009069 ТЕМНО-ЗЕЛЕНАЯ ткань- (ITL-FC) 220009069 106307.1 БЕЛЫЙ 10 220009069 БЕЛЫЙ Ткань- (ITL-FC)

2. Хорошо, изменил его.

3. все тот же рамин

4. Изменил его. Может быть, это пустая строка или просто символ только с пробелами. Какую базу данных вы используете? Не уверен, что TRIM это стандартный ANSI SQL.

5. sql server 2018 все тот же