1
我是新的sqlite,我有三個表,學生,測驗和標記表。我想用單個sqlite查詢在CVS中編寫所有數據。我想從代碼和單個查詢處理中刪除多個循環和條件。我在sql中創建了查詢,但我不明白它應該在SQLlite中。它看起來像二維(學生數量與測驗次數)。 學生表:SQLite查詢獲取兩個國際記錄(學生vs測驗)
Id | StudentId | Name
1 | 001 | ABC
2 | 002 | EFG
3 | 003 | XYZ
測驗表:
QId |TotalMark | Question
1 | 10 | ABC
2 | 10 | TUI
3 | 10 | LMP
Marksheet表:
SId | QID | Marks
001 | 1 | 4
002 | 1 | 6
003 | 1 | 7
001 | 2 | 5
002 | 2 | 6
003 | 2 | 7
001 | 3 | 9
002 | 3 | 6
003 | 3 | 7
要求輸出:
Id | StudentId | Name | ABC | TUI| LMP
1 | 001 | ABC | 4 | 5 | 6
2 | 002 | EFG | 4 | 5 | 6
3 | 003 | XYZ | 4 | 5 | 6
DROP TABLE H;
DROP TABLE T;
SELECT TOP 1
STUFF((SELECT ', ' + M.title
FROM dbo.marksheet M
INNER JOIN marksheet_item MI ON M.marksheet_id = MI.marksheet_id
INNER JOIN dbo.student SS ON SS.stu_id = MI.stu_id
WHERE S.stu_id = SS.stu_id
FOR
XML PATH('')
), 1, 2, '') AS ReportHeader
INTO H
FROM student S
GROUP BY S.stu_id,S.stu_name;
SELECT MIN(stu_id) AS ID ,
S.stu_id ,S.stu_name,
STUFF((SELECT ', ' + CAST(MI.marks AS VARCHAR(50))
FROM dbo.marksheet M
INNER JOIN marksheet_item MI ON M.marksheet_id = MI.marksheet_id
INNER JOIN dbo.student SS ON SS.stu_id = MI.stu_id
WHERE S.stu_id = SS.stu_id
FOR
XML PATH('')
), 1, 2, '') AS report
INTO t
FROM student S
GROUP BY S.stu_id,S.stu_name;
SELECT *FROM h;
SELECT *FROM t;
@sagar,感謝您的格式化,如何格式化表格? – khawarPK
使用Ctrl + Shift + K –
@sagar謝謝.. – khawarPK