Wenn ich unter 2 Abfragen verwenden separat I-Ausgang erhalten erfolgreichAusgabe mit voller Outer-Joins in SQL Server
Abfrage # 1
DECLARE @ID VARCHAR(1000)
SET @ID = ''
SELECT @ID = @ID + CAST(int_ID AS VARCHAR(1000))
FROM MATRIX_RELATIONSHIP
SELECT COUNT(int_ID) [Count], YEAR(dt_5841_OF) [date]
FROM TRANS_IDENTIFICATIONS
WHERE smallint_209_ME = 4
AND CHARINDEX(CONVERT(VARCHAR, int_ID), ('''' + Replace((@ID),',',''',''') + '''')) > 0
GROUP BY YEAR(dt_5841_OF);
Ausgang:
Count | year
02 2016
Abfrage # 2
SELECT
COUNT(*) [Count1], YEAR(dt_modifiedOn) [date]
FROM
MATRIX_RELATIONSHIP
GROUP BY
YEAR(dt_modifiedOn);
Ausgabe:
Count | year
02 2016
Aber wenn ich beiden Abfragen verwenden, um ein full outer join
etwas wie unten zu bilden:
SELECT
tab1.Count, tab2.Count1, tab1.date
FROM
(DECLARE @ID VARCHAR(1000)
SET @ID = ''
SELECT @ID = @ID+CAST(int_ID AS VARCHAR(1000))
FROM MATRIX_RELATIONSHIP
SELECT COUNT(int_ID) [Count], YEAR(dt_5841_OF) [date]
FROM TRANS_IDENTIFICATIONS
WHERE smallint_209_ME = 4
AND CHARINDEX(convert(varchar,int_ID), ('''' + Replace((@ID),',',''',''') + '''')) > 0
GROUP BY YEAR(dt_5841_OF)) tab1
FULL OUTER JOIN
(SELECT COUNT(*) [Count1], YEAR(dt_modifiedOn) [date]
FROM MATRIX_RELATIONSHIP
GROUP BY YEAR(dt_modifiedOn)) tab2 ON tab1.date = tab2.date;
ich diese Fehler:
Msg 156, Ebene 15, Status 1, Zeile 2
Falsche Syntax in der Nähe des Schlüsselwortes 'DECLARE'.Msg 102, Ebene 15, Status 1, Zeile 4
Falsche Syntax in der Nähe von ')'.Msg 102, Ebene 15, Status 1, Zeile 7
Falsche Syntax in der Nähe von 'Tab2'.
Erwartetes Ergebnis
Count | Count1 | year
02 02 2016
EDIT
Ich Platzierung haben versucht zu erklären und außerhalb der Abfrage auch, aber immer noch da das Problem weiterhin besteht
DECLARE @ID VARCHAR(1000) SET @ID=''
SELECT tab1.Count,tab2.Count1,tab1.date from
(SELECT @ID= @ID+CAST(int_ID AS VARCHAR(1000))
from MATRIX_RELATIONSHIP SELECT COUNT(int_ID)[Count],YEAR(dt_5841_OF)[date] FROM TRANS_IDENTIFICATIONS WHERE smallint_209_ME=4 and CHARINDEX(convert(varchar,int_ID), ('''' + Replace((@ID),',',''',''') + '''')) >
0 GROUP BY YEAR(dt_5841_OF)) tab1
FULL OUTER JOIN
(SELECT COUNT(*)[Count1],YEAR(dt_modifiedOn)[date]
FROM MATRIX_RELATIONSHIP GROUP BY YEAR(dt_modifiedOn)) tab2
ON tab1.date=tab2.date;
gesetzt, die zu einem anderen führt Fehlergruppe:
Msg 102, Ebene 15, Status 1, Zeile 3
Falsche Syntax in der Nähe von '='.Msg 102, Ebene 15, Status 1, Zeile 5
Falsche Syntax in der Nähe von ')'.Msg 102, Ebene 15, Status 1, Zeile 8
Falsche Syntax in der Nähe von 'Tab2'.
@SiddP gleich SELECT @ ID = 'Sie wissen lassen - es ist nicht zu voll beitreten gehört. –