SQL 日期列中的额外数据

SQL Extra data in the date column

我有一个问题如下

Site_name  LOB date
Site 1    Sales 6/1
Site 1    Sales 6/2
...       ....  ..
Site 2    Sales 6/1
Site 2    Sales 6/2
...       ....  ..
Site 3    Consumer 6/1
Site 3    Consumer 6/1

在数据中,我想要所有日期 MTD 和日期列中的额外两行。我希望它包含 'MTD' 和 'Target' 所以我得到的 table 看起来像这样

 Site_name  LOB date
    Site 1    Sales 6/1
    Site 1    Sales 6/2
    ...       ....  ..
    Site 1    Sales Target
    Site 1    Sales MTY

    Site 2    Sales 6/1
    Site 2    Sales 6/2
    ...       ....  ..
    Site 2    Sales Target
    Site 2    Sales MTY

    Site 3    Consumer 6/1
    Site 3    Consumer 6/1
    ...       ....     ...
    Site 3    Consumer Target
    Site 3    Consumer MTD

我对我现在拥有的东西的基本查询是,有些地方我认为在这里并不重要。

   Select Distinct 
    Site_name, LOB, Day_date 
   where month(day_date)>=month(getdate()-5)
   and year(day_date)=year(getdate())

不确定您是否想要这个,但它可能会给您一个想法。
至少,它产生的结果完全符合您的要求:

;WITH tData(Site,LOB) as (SELECT 'Site 1','Sales' UNION ALL SELECT 'Site 2','Sales' UNION ALL SELECT 'Site 3','Consumer' ),
tDate(sDate) as (SELECT CAST('2016-06-01' as Date) UNION ALL SELECT '2016-06-02'),
DateCol(sDate,sOrder) as (SELECT CAST(sDate as VARCHAR), 0 FROM tDate UNION ALL SELECT 'Target', 1 UNION ALL SELECT 'MTD', 2)
SELECT tData.*, sDate as [Date]
FROM tData, DateCol
ORDER BY Site, sOrder, sDate

Site    LOB         Date
Site 1  Sales       2016-06-01
Site 1  Sales       2016-06-02
Site 1  Sales       Target
Site 1  Sales       MTD
Site 2  Sales       2016-06-01
Site 2  Sales       2016-06-02
Site 2  Sales       Target
Site 2  Sales       MTD
Site 3  Consumer    2016-06-01
Site 3  Consumer    2016-06-02
Site 3  Consumer    Target
Site 3  Consumer    MTD