Мне нужно, чтобы значения отображались в день, даже если нет записей
CREATE PROCEDURE Robotics.GetData
@CelulaId INT,
@Start DATETIME,
@End DATETIME
AS
BEGIN
SELECT
x.Date,
r.Shift,
r.Cell,
r.Income
FROM (
SELECT x.Date
FROM
(
SELECT Date FROM DateDimension dd
WHERE CONVERT(DATE, dd.Date) >= @Start
AND CONVERT(DATE, dd.Date) <= @End
) x
) x
LEFT JOIN Records r
ON x.Date = CONVERT(DATE, r.CreatedOn)
AND r.Cell= '3.9.Y'
END
Проблема в том, что я хотел бы показать все доступные смены в день, даже если для этого сдвига нет записей для этого сдвигаday.
Чтобы получить дни, которые я использовал, оставьте соединение с таблицей календаря.Это мой текущий результат
Date Shift Cell Income
2019-09-13 Yellow 3.9.Y 100
2019-09-13 Blue 3.9.Y 200
2019-09-13 Green 3.9.Y 450
2019-09-14 NULL NULL NULL
2019-09-15 NULL NULL NULL
2019-09-16 Yellow 3.9.Y 200
2019-09-16 Green 3.9.Y 300
2019-09-17 Yellow 3.9.Y 250
2019-09-17 Blue 3.9.Y 100
2019-09-17 Green 3.9.Y 300
2019-09-18 Yellow 3.9.Y 200
2019-09-18 Blue 3.9.Y 500
2019-09-18 Green 3.9.Y 750
2019-09-19 Blue 3.9.Y 250
Я бы хотел, чтобы что-то подобное появилось
Date Shift Cell Income
2019-09-13 Yellow 3.9.Y 100
2019-09-13 Blue 3.9.Y 200
2019-09-13 Green 3.9.Y 450
2019-09-14 Yellow 3.9.Y 0 // Null record
2019-09-14 Blue 3.9.Y 0 // Null record
2019-09-14 Green 3.9.Y 0 // Null record
2019-09-15 Yellow 3.9.Y 0 // Null record
2019-09-15 Blue 3.9.Y 0 // Null record
2019-09-15 Green 3.9.Y 0 // Null record
2019-09-16 Yellow 3.9.Y 200
2019-09-16 Blue 3.9.Y 0 // Null record
2019-09-16 Green 3.9.Y 300
2019-09-17 Yellow 3.9.Y 250
2019-09-17 Blue 3.9.Y 100
2019-09-17 Green 3.9.Y 300
2019-09-18 Yellow 3.9.Y 200
2019-09-18 Blue 3.9.Y 500
2019-09-18 Green 3.9.Y 750
2019-09-19 Yellow 3.9.Y 0 // Null record
2019-09-19 Blue 3.9.Y 250
2019-09-19 Yellow 3.9.Y 0 // Null record
CREATE TABLE Shifts
(
Id INT,
Name NVARCHAR(20)
)
CREATE TABLE Cells
(
Id INT,
Name NVARCHAR(20)
)
CREATE TABLE Records
(
Id INT,
CreatedOn DATETIME,
Shift NVARCHAR(10),
Cell NVARCHAR(10)
Income INT
)