2013-11-12 3 views
2

Я пытаюсь изменить макет моего запроса здесь, чтобы показать amalgamate. Поисковые запросы в один столбец, чтобы я мог последовательно показывать поисковые запросы на нашем веб-сайте.SQL Server объединяет столбцы datetime в один

Любая помощь очень ценится.

enter image description here

Код:

Select 
StVS.ID AS 'SessionID', 

-- Search Details 
StBe.Bedrooms AS 'Searches Bedrooms', 
StDo.Dogs AS 'Searches Dogs', 
StDu.Duration AS 'Searches Duration', 

-- Search times 
StBe.datetimeselected AS 'Bedrooms time', 
StDo.datetimeselected AS 'Dogs time', 
StDu.datetimeselected AS 'Duration time' 

FROM Stats_VisitorSessions StVs 

-- Searches 
left join Stats_Bedrooms StBe on StBe.SessionID=StVS.SessionID 
left join Stats_Dogs StDo on StDo.SessionID=StVS.SessionID 
left join Stats_Duration StDu on StDu.SessionID=StVS.SessionID 

ответ

1

Использование UNION:

Select 
StVS.ID AS 'SessionID', 

StBe.datetimeselected AS 'SearchTime', 
StBe.Bedrooms AS Bedrooms, 
NULL as Dogs, 
NULL as Duration 

FROM Stats_VisitorSessions StVs 

left join Stats_Bedrooms StBe on StBe.SessionID=StVS.SessionID 
UNION ALL 
Select 
StVS.ID AS 'SessionID', 

StDo.datetimeselected AS 'SearchTime', 
NULL AS Bedrooms, 
StDo.Dogs as Dogs, 
NULL as Duration 

FROM Stats_VisitorSessions StVs 

left join Stats_Dogs StDo on StDo.SessionID=StVS.SessionID 

UNION ALL 
Select 
StVS.ID AS 'SessionID', 

StDu.datetimeselected AS 'SearchTime', 
NULL AS Bedrooms, 
NULL as Dogs, 
StDu.Duration as Duration 

FROM Stats_VisitorSessions StVs 

left join Stats_Duration StDu on StDu.SessionID=StVS.SessionID 
0
SELECT t.SessionID, t1./dog-rel info/, t1./bedroom-rel info/, t1./dur-rel info/ FROM Table t 
INNER JOIN (
    SELECT SessionID, /dog related into/ and nulls for other info 
    UNION ALL 
    SELECT SessionID, nulls for dog, /bedrom related into/, nulls for duration 
    UNION ALL 
    SELECT SessionID, nulls for all above, /duration related into/ 
) t1 ON (t.SessionId = t1.SessionId) 

также могут быть сделаны с 3 оставили внешние связи

SELECT t.SessionID, t1./dogs rel info/, t2./bedroom rel info/, t3./duration rel info/ FROM Table t 
LEFT OUTER JOIN Table as t1 ON (t.SessionId = t1.SessionId) 
LEFT OUTER JOIN Table as t2 ON (t.SessionId = t2.SessionId) 
LEFT OUTER JOIN Table as t3 ON (t.SessionId = t3.SessionId) 
Смежные вопросы