Hi I have a problem with regarding on split/pivot dates
Here is my query
select Name
, Start
, End
from Employees
where St
you need to generate all the dates. i did this here by using a cte. i then join this date range with your data and receive the sought result.
with DateRange AS
(
SELECT CAST('1/27/2014' as DATEtime) DateValue
UNION ALL
SELECT dateadd(dd,1,DateValue)
FROM DateRange
WHERE dateadd(dd,1,DateValue) <= CAST('3/31/2014' as datetime)
)
select name
, DateValue
from Employees
join DateRange
on start <= DateValue
and [end] >= datevalue
order by
name
, DateValue
select Name
, Start
from Employees
where Start >= '1/27/2014'
and End <= '1/31/2014'
union all
select Name
, End
from Employees
where Start >= '1/27/2014'
and End <= '1/31/2014'
order by
Name
First, create the table as -
USE `Test`;
CREATE TABLE `test`.`Tbl_Sample_Data` (
`Name` VARCHAR(50) NULL ,
`Start` DATETIME NULL ,
`End` DATETIME NULL );
Insert rows using -
INSERT INTO `test`.`tbl_sample_data`
(`End`,
`Name`,
`Start`)
VALUES
(
'PutEndDateHere',
'PutNameHere',
'PutStartDateHere'
);
Here, dates should be in yyyy-MM-dd
format, otherwise you get error 1292.
Use this query to get what you want.
SELECT `Name`,'Start' AS colName, `Start` AS value FROM test.tbl_sample_data
UNION ALL
SELECT `Name`,'End' AS colName, `End` AS value FROM test.tbl_sample_data
ORDER BY `Name` ASC
Note that column names whose name is the same as a keyword must be enclosed in backticks. Eg. Example Name. Otherwise, you get error.