を与える:SQLクエリは、私は次のSQLクエリを持っているエラー
SELECT *
FROM (
SELECT ClientNumber, ClientName, YearEndDate, schedule, a1, ad1, a2, ad2, a3, ad3,
cv.[id] as CvId,
[dataCV] =
CASE cv.[id]
WHEN 'DATUM_AVA' THEN CONVERT(DATETIME, cv.[data], 112)
WHEN 'RECHTSVORM' THEN cv.[data]
END,
DATEADD(day, 30, [data]) AS Stat_Filing_Date,
To_Be_Filed =
CASE
WHEN DATEADD(day, 30, [data]) < GETDATE() THEN 'Yes'
ELSE 'No'
END
FROM EngagementFiles ef
INNER JOIN ac
ON ef.id = ac.EngagementFile_Id
INNER JOIN cv
ON ef.id = cv.EngagementFile_Id
RIGHT JOIN sh
ON ac.short_name = sh.a3 OR ac.short_name = sh.a2 OR ac.short_name = sh.a1
WHERE (schedule = 'G21-9A' OR schedule = 'G21-9B') AND sh.EngagementFile_Id = ef.id AND (ac.act_type = 'C' OR ac.act_type = 'H')
AND schedule =
CASE WHEN
(
SELECT cv.[data]
FROM cv
WHERE [id] = 'REPORT_TYPE' AND cv.EngagementFile_Id = ef.id
) LIKE '%VKT%' THEN 'G21-9B' ELSE 'G21-9A' END
AND ((cv.[id] = 'DATUM_AVA' AND cv.[form] = '' AND cv.[group] = ''))
) AS s
PIVOT (
MAX(dataCV)
FOR [CvId] IN ([DATUM_AVA]
)
)AS pvt
これは次の結果を返します。
を今、私はどのピボット部に別の列を追加しますまた、cvテーブルからも得られます。このテーブルの構造は奇妙なものです。それには、id、form、group、およびdataという列があります。
id、form、groupという列は、実際には異なるアプリケーションで使用される一意のIDです。
追加したい列には、id = RECHTSVORM、グループとフォームが空のcvテーブルのデータが含まれています。
SELECT *
FROM (
SELECT ClientNumber, ClientName, YearEndDate, schedule, a1, ad1, a2, ad2, a3, ad3,
cv.[id] as CvId,
[dataCV] =
CASE cv.[id]
WHEN 'DATUM_AVA' THEN CONVERT(DATETIME, cv.[data], 112)
WHEN 'RECHTSVORM' THEN cv.[data]
END,
DATEADD(day, 30, [data]) AS Stat_Filing_Date,
To_Be_Filed =
CASE
WHEN DATEADD(day, 30, [data]) < GETDATE() THEN 'Yes'
ELSE 'No'
END
FROM EngagementFiles ef
INNER JOIN ac
ON ef.id = ac.EngagementFile_Id
INNER JOIN cv
ON ef.id = cv.EngagementFile_Id
RIGHT JOIN sh
ON ac.short_name = sh.a3 OR ac.short_name = sh.a2 OR ac.short_name = sh.a1
WHERE (schedule = 'G21-9A' OR schedule = 'G21-9B') AND sh.EngagementFile_Id = ef.id AND (ac.act_type = 'C' OR ac.act_type = 'H')
AND schedule =
CASE WHEN
(
SELECT cv.[data]
FROM cv
WHERE [id] = 'REPORT_TYPE' AND cv.EngagementFile_Id = ef.id
) LIKE '%VKT%' THEN 'G21-9B' ELSE 'G21-9A' END
AND ((cv.[id] = 'DATUM_AVA' AND cv.[form] = '' AND cv.[group] = '')
OR (cv.[id] = 'RECHTSVORM' AND cv.[form] = '' AND cv.[group] = ''))
) AS s
PIVOT (
MAX(dataCV)
FOR [CvId] IN ([DATUM_AVA],
[RECHTSVORM]
)
)AS pvt
しかし、これは次のエラー得られます:
私はこれを試してみましたとクエリは次のようである
Conversion failed when converting date and/or time from character string.
私はRECHTSVORM列のためにそれもあるので、これは推測しているがcv.dataをdatetimeに変換しようとしています。 クエリがcv.dataをDATUM_AVA列のdatetimeに変換するだけでは、何を変更する必要がありますか?
追加の列をピボットに追加するという意味はありますか? そのクエリはどのように見えますか? – Marijn