如果一直在這個查詢一整天,現在我似乎無法得到我的頭。如果也許你可以指點我正確的方向,或告訴我我想找什麼功能,這將意味着很多。 我試過在SQL中查看樞軸,案例,聯盟和組功能,但沒有運氣......但它看起來很簡單從單列中選擇多個值
我從多個表中選擇。 其中一個表格包含一行,其中包含我需要在我的選擇中返回的多個值。
SQL:
(SELECT ONYAK_SIGMAPRO_Issues.IssueId,
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Work Ticket],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Customer Name],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Job Description],
ONYAK_SIGMAPRO_ProjectCategories.CategoryName AS [Printer],
ONYAK_SIGMAPRO_Issues.IssueTitle AS [Task Description],
ONYAK_SIGMAPRO_Issues.Progress,
ONYAK_SIGMAPRO_ProjectStatus.StatusName AS [Status],
ONYAK_SIGMAPRO_ProjectPriorities.PriorityName AS [Priority],
ONYAK_SIGMAPRO_Issues.DateDue
FROM (ONYAK_SIGMAPRO_Issues INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFieldValues ON ONYAK_SIGMAPRO_Issues.IssueId = ONYAK_SIGMAPRO_ProjectCustomFieldValues.IssueId INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFields ON
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldId = ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId AND
ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCustomFields.ProjectId INNER JOIN
ONYAK_SIGMAPRO_ProjectStatus ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectStatus.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueStatusId = ONYAK_SIGMAPRO_ProjectStatus.StatusId INNER JOIN
ONYAK_SIGMAPRO_ProjectPriorities ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectPriorities.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssuePriorityId = ONYAK_SIGMAPRO_ProjectPriorities.PriorityId INNER JOIN
ONYAK_SIGMAPRO_ProjectCategories ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCategories.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueCategoryId = ONYAK_SIGMAPRO_ProjectCategories.CategoryId
)
WHERE ONYAK_SIGMAPRO_Issues.ProjectId = 2
AND ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId = 1
UNION all
SELECT ONYAK_SIGMAPRO_Issues.IssueId,
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Work Ticket],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Customer Name],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Job Description],
ONYAK_SIGMAPRO_ProjectCategories.CategoryName AS [Printer],
ONYAK_SIGMAPRO_Issues.IssueTitle AS [Task Description],
ONYAK_SIGMAPRO_Issues.Progress,
ONYAK_SIGMAPRO_ProjectStatus.StatusName AS [Status],
ONYAK_SIGMAPRO_ProjectPriorities.PriorityName AS [Priority],
ONYAK_SIGMAPRO_Issues.DateDue
FROM ONYAK_SIGMAPRO_Issues INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFieldValues ON ONYAK_SIGMAPRO_Issues.IssueId = ONYAK_SIGMAPRO_ProjectCustomFieldValues.IssueId INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFields ON
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldId = ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId AND
ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCustomFields.ProjectId INNER JOIN
ONYAK_SIGMAPRO_ProjectStatus ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectStatus.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueStatusId = ONYAK_SIGMAPRO_ProjectStatus.StatusId INNER JOIN
ONYAK_SIGMAPRO_ProjectPriorities ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectPriorities.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssuePriorityId = ONYAK_SIGMAPRO_ProjectPriorities.PriorityId INNER JOIN
ONYAK_SIGMAPRO_ProjectCategories ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCategories.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueCategoryId = ONYAK_SIGMAPRO_ProjectCategories.CategoryId
WHERE ONYAK_SIGMAPRO_Issues.ProjectId = 2
AND ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId = 4
UNION all
SELECT ONYAK_SIGMAPRO_Issues.IssueId,
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Work Ticket],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Customer Name],
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldValue AS [Job Description],
ONYAK_SIGMAPRO_ProjectCategories.CategoryName AS [Printer],
ONYAK_SIGMAPRO_Issues.IssueTitle AS [Task Description],
ONYAK_SIGMAPRO_Issues.Progress,
ONYAK_SIGMAPRO_ProjectStatus.StatusName AS [Status],
ONYAK_SIGMAPRO_ProjectPriorities.PriorityName AS [Priority],
ONYAK_SIGMAPRO_Issues.DateDue
FROM ONYAK_SIGMAPRO_Issues INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFieldValues ON ONYAK_SIGMAPRO_Issues.IssueId = ONYAK_SIGMAPRO_ProjectCustomFieldValues.IssueId INNER JOIN
ONYAK_SIGMAPRO_ProjectCustomFields ON
ONYAK_SIGMAPRO_ProjectCustomFieldValues.CustomFieldId = ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId AND
ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCustomFields.ProjectId INNER JOIN
ONYAK_SIGMAPRO_ProjectStatus ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectStatus.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueStatusId = ONYAK_SIGMAPRO_ProjectStatus.StatusId INNER JOIN
ONYAK_SIGMAPRO_ProjectPriorities ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectPriorities.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssuePriorityId = ONYAK_SIGMAPRO_ProjectPriorities.PriorityId INNER JOIN
ONYAK_SIGMAPRO_ProjectCategories ON ONYAK_SIGMAPRO_Issues.ProjectId = ONYAK_SIGMAPRO_ProjectCategories.ProjectId AND
ONYAK_SIGMAPRO_Issues.IssueCategoryId = ONYAK_SIGMAPRO_ProjectCategories.CategoryId
WHERE ONYAK_SIGMAPRO_Issues.ProjectId = 2
AND ONYAK_SIGMAPRO_ProjectCustomFields.CustomFieldId = 9)
ORDER BY ONYAK_SIGMAPRO_Issues.IssueId
結果:
IssueId Work Ticket Customer Name Job Description Printer Task Description Progress Status Priority DateDue 1070 8828 8828 8828 Heidelberg brochure 0 Art Work High 00:00.0 1070 brochures brochures brochures Heidelberg brochure 0 Art Work High 00:00.0 1070 Liberty Life Liberty Life Liberty Life Heidelberg brochure 0 Art Work High 00:00.0 1082 Liberty Life Liberty Life Liberty Life Heidelberg (brochures 0 Art Work High 00:00.0 1082 brochures brochures brochures Heidelberg (brochures 0 Art Work High 00:00.0 1082 8294 8294 8294 Heidelberg (brochures 0 Art Work High 00:00.0 1086 8295 8295 8295 Heidelberg (brochures 0 Art Work High 00:00.0 1086 stable growth brochures stable growth brochures stable growth brochures Heidelberg (brochures 0 Art Work High 00:00.0 1086 Liberty Life Liberty Life Liberty Life Heidelberg (brochures 0 Art Work High 00:00.0 1090 Liberty Life Liberty Life Liberty Life Kamori (VAS Card 0 Art Work High 00:00.0 1090 VAS cards VAS cards VAS cards Kamori (VAS Card 0 Art Work High 00:00.0 1090 8296 8296 8296 Kamori (VAS Card 0 Art Work High 00:00.0 1104 8300 8300 8300 Heidelberg Menu text 0 Art Work High 00:00.0 1104 menu text menu text menu text Heidelberg Menu text 0 Art Work High 00:00.0 1104 South African Airways South African Airways South African Airways Heidelberg Menu text 0 Art Work High 00:00.0
大膽列是給我找麻煩。
我想選擇做返回如下:
IssueId Work Ticket Customer Name Job Description Printer Task Description Progress Status Priority DateDue 1070 8828 Liberty Life brochures Heidelberg brochure 0 Art Work High 00:00.0 1082 8294 8294 brochures Heidelberg (brochures 0 Art Work High 00:00.0 1086 8295 Liberty Life Liberty Life Heidelberg (brochures 0 Art Work High 00:00.0 1090 8296 Liberty Life VAS cards Kamori (VAS Card 0 Art Work High 00:00.0 1104 8300 South African Airways menu text Heidelberg Menu text 0 Art Work High 00:00.0
我可以使用哪些功能或類型的選擇?
您的SQL,你的結果是解決此問題既非常大,也不可讀。你可以發佈一個簡單的例子,或者更簡潔地解釋你想要做什麼。您的描述表明您希望基於表中的單個列返回結果中的兩個值 - 是否正確? – 2013-03-15 10:37:43
對於您的結果...如果您發佈屏幕截圖而不是所有文本,它可能會更清晰。另外,對於查詢部分..可以刪除查詢中沒有必要的任何連接/列?這將幫助我們專注於這個問題。 – Matt 2013-03-15 10:42:15
你需要通過IssueId在最後完成一個組,所有三個工單,客戶名稱,職位描述是相同的。CustomFieldValue – 2013-03-15 10:58:13