I have an issue with getting required information from the ESQL - it throws error and I'm out of ideas how to solve this So, I have a normal T-SQL script that does work and returns what I need (Names) and in T-SQL it works fine with CASE () and nested SELECTS
SELECT RI.INCIDENT_ID AS AssociatedArtifactID, 'Incident' AS ArtifactType, INC.[NAME]
FROM [dbo].[RPT_REQUIREMENT_INCIDENTS] AS RI
INNER JOIN [dbo].[RPT_INCIDENTS] AS INC ON INC.INCIDENT_ID=RI.INCIDENT_ID
WHERE RI.REQUIREMENT_ID = 4
UNION
SELECT AA.DEST_ARTIFACT_ID AS AssociatedArtID, AA.[DEST_ARTIFACT_TYPE_NAME] AS AssociatedArtifact,
(CASE
--RQ
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Requirement' THEN
(SELECT RQ.[NAME] FROM [dbo].[RPT_REQUIREMENTS] AS RQ
WHERE RQ.[REQUIREMENT_ID]=AA.DEST_ARTIFACT_ID)
--NC
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Incident' THEN
(SELECT INC.[NAME] FROM [dbo].[RPT_INCIDENTS] AS INC
WHERE INC.[INCIDENT_ID]=AA.DEST_ARTIFACT_ID)
--RL
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Release' THEN
(SELECT RL.[NAME] FROM [dbo].[RPT_RELEASES] AS RL
WHERE RL.[RELEASE_ID]=AA.DEST_ARTIFACT_ID)
--RK
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Risk' THEN
(SELECT RK.[NAME] FROM [dbo].[RPT_RISKS] AS RK
WHERE RK.[RISK_ID]=AA.DEST_ARTIFACT_ID)
--TK
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Task' THEN
(SELECT TK.[NAME] FROM [dbo].[RPT_TASKS] AS TK
WHERE TK.[RISK_ID]=AA.DEST_ARTIFACT_ID)
END ) AS ArtifactName
FROM [dbo].[RPT_ARTIFACT_ASSOCIATION] AS AA
WHERE (AA.SOURCE_ARTIFACT_ID = 4 AND AA.SOURCE_ARTIFACT_TYPE_ID = 1)
The corresponding output is correct for that query: enter image description here
Now I need to interpret the same into ESQL. Have tried the same - it throws an error System Error: The server method 'Reports_RetrieveCustomQueryData' failed
(SELECT RI.INCIDENT_ID AS AssociatedArtifactID, 'Incident' AS ArtifactType, INC.Name
FROM SPEntities.R_RequirementINCIDENTS AS RI
INNER JOIN SPEntities.R_INCIDENTS AS INC ON INC.INCIDENT_ID=RI.INCIDENT_ID
WHERE RI.REQUIREMENT_ID = 4)
UNION
(SELECT AA.DEST_ARTIFACT_ID AS AssociatedArtID, AA.DEST_ARTIFACT_TYPE_NAME AS AssociatedArtifact,
(CASE
--RQ
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Requirement' THEN
(SELECT RQ.NAME FROM SpiraTestEntities.R_Requirements AS RQ
WHERE RQ.REQUIREMENT_ID=AA.DEST_ARTIFACT_ID)
--NC
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Incident' THEN
(SELECT INC.NAME FROM SpiraTestEntities.R_INCIDENTS AS INC
WHERE INC.INCIDENT_ID=AA.DEST_ARTIFACT_ID)
--RL
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Release' THEN
(SELECT RL.NAME FROM SpiraTestEntities.R_Releases AS RL
WHERE RL.RELEASE_ID=AA.DEST_ARTIFACT_ID)
--RK
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Risk' THEN
(SELECT RK.NAME FROM SpiraTestEntities.R_Risks AS RK
WHERE RK.RISK_ID=AA.DEST_ARTIFACT_ID)
--TK
WHEN AA.DEST_ARTIFACT_TYPE_NAME='Task' THEN
(SELECT TK.NAME FROM SpiraTestEntities.R_Tasks AS TK
WHERE TK.RISK_ID=AA.DEST_ARTIFACT_ID)
END ) AS ArtifactName
FROM SPEntities.R_ArtifactAssociations AS AA
WHERE AA.SOURCE_ARTIFACT_ID = 34 AND AA.SOURCE_ARTIFACT_TYPE_ID = 1)
Then I've tried with simplified version:
SELECT AA.DEST_ARTIFACT_ID AS AssociatedArtID,
AA.SOURCE_ARTIFACT_ID AS SourceArtifact,
AA.DEST_ARTIFACT_TYPE_NAME AS AssociatedArtifact,
AA.ARTIFACT_LINK_TYPE_NAME AS Link, (SELECT cast(INC.Name as string) FROM SpiraTestEntities.R_Incidents as INC) AS NAME
But the result is an error in a column itself
Any help or suggestion appreciated