2
我寫了下面的查詢產生下面的輸出:使用SQL PIVOT JOINS
SELECT
users.user_id AS 'User ID',
users.first_name AS 'First Name',
users.last_name AS 'Surname',
users.login AS 'Username',
CASE users.type WHEN 0 THEN 'Student' WHEN 1 THEN 'Staff Member' WHEN 2 THEN 'Guest/Other' END AS 'User Type',
CASE users.active WHEN 1 THEN 'Active' ELSE 'Inactive' END AS 'User Status', campuses.campus_name AS 'Campus', users.year_level AS 'Year Level',
users.class AS 'Class',
CASE users.eligible WHEN 1 THEN 'Yes' ELSE 'No' END AS 'Eligible',
forms.form_title AS 'Form Name',
users_forms_map.date AS 'Date Returned'
FROM users_forms_map
INNER JOIN users ON users_forms_map.user_fk = users.pk
INNER JOIN campuses ON users.campus_id=campuses.campus_id
INNER JOIN forms ON users_forms_map.form_id=forms.form_id
我想PIVOT此表爲每個「表單名稱」,並創建一個列每個用戶一行。 「表單名稱」需要是動態的,因爲沒有有限的表單名稱集。
我一直在努力得到這個權利!預先感謝您提供的任何指導。
這將有助於看到你到目前爲止的嘗試。請添加您嘗試過的內容,以及它如何失敗(錯誤消息或錯誤輸出)。在簡單情況下,您是否成功使用過PIVOT,或者您是第一次使用PIVOT? – dsz
如果可能,在應用程序中做得更好。任何給定的查詢總是返回具有固定形狀的結果集 - 列的數量,名稱和類型。你可以構造一個動態查詢,但它會變得很難看,大多數應用程序編程語言/報告構建器有更好的工具來執行這個任務。 –