2016-06-13 12 views
-1

Ich habe eine Abfrage mit etwas soSQL Zusätzliche Daten in der Datumsspalte

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 

in den Daten folgen würde ich all MTD die Termine haben möge und zwei zusätzliche Zeilen in der Datumsspalte. Ich mag diese ‚MTD‘ und ‚Ziel‘ enthalten, so meine resultierende Tabelle so etwas wie diese

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 

Meiner grundlegende Abfrage für das, was aussehen würde ich jetzt habe, ist es einige gibt, wo ist, dass ich Figur nicht wirklich wichtig hier.

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

In seiner jetzigen Form Ihre Frage nicht zu beantworten, weil es bei weitem nicht genug Details geschrieben sind. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –

+0

Wenn Sie fragen, wie Sie Zeilen in eine Tabelle einfügen, dann die Die Antwort erfolgt mit einer INSERT-Anweisung. Wenn du etwas mehr als das fragst, dann musst du genauer sein, weil deine Frage überhaupt nicht klar ist. –

+0

Wie würden Sie Strings in der Spalte "Date" speichern? – maliks

Antwort

0

Nicht sicher, ob Sie genau das wollen, aber es könnte Ihnen eine Idee geben.
Immerhin produziert es Ergebnisse genau so, wie Sie angefordert haben:

;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 
+0

genau das, was ich gesucht habe. Ich musste die Abfrage etwas ändern, aber das gab mir die grundlegende Sache, die ich brauchte, damit es funktioniert –

Verwandte Themen