|
-Dman100-
Posting Yak Master
210 Posts |
Posted - 2006-06-09 : 18:35:31
|
| I've recently been given some new applications to support and I'm trying to clean-up and normalize the structures.One of the current structures I'm working on is a teacher evaluation form with a series of questions that are inserted into one of the tables. The tables to hold the data that I query from were built as follows:CREATE TABLE [dbo].[Answers] ( [id] [int] NOT NULL , [Label] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GO--the above table holds all the possible answers that can be choosenCREATE TABLE [dbo].[Teacher_Survey] ( [id] [int] NOT NULL , [Teacher] [int] NOT NULL , [Q3] [int] NULL , [Q4A_math] [int] NOT NULL , [Q4B_math] [int] NOT NULL , [Q4A_rla] [int] NOT NULL , [Q4B_rla] [int] NOT NULL , [Q5] [int] NULL , [Q6] [int] NULL , [Q7_mo] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Q7_yr] [varchar] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Q8] [int] NULL , [Q9] [int] NULL , [Q10A] [int] NOT NULL , [Q10B] [int] NOT NULL , [Q10C] [int] NOT NULL , [Q10D] [int] NOT NULL , [Q11A] [int] NOT NULL , [Q11B] [int] NOT NULL , [Q11C] [int] NOT NULL , [Q11D] [int] NOT NULL , [Q12A] [int] NOT NULL , [Q12B] [int] NOT NULL , [Q12C] [int] NOT NULL , [Q12D] [int] NOT NULL , [Q12E] [int] NOT NULL , [Q12F] [int] NOT NULL , [Q13] [int] NULL , [Q14] [int] NULL , [Q15] [int] NULL , [Q16] [int] NULL , [Q17_classA] [int] NOT NULL , [Q17_classB] [int] NOT NULL , [Q17_classC] [int] NOT NULL , [Q17_classD] [int] NOT NULL , [Q17_labA] [int] NOT NULL , [Q17_labB] [int] NOT NULL , [Q17_labC] [int] NOT NULL , [Q17_labD] [int] NOT NULL , [Q18A] [int] NOT NULL , [Q18B] [int] NOT NULL , [Q18C] [int] NOT NULL , [Q18D] [int] NOT NULL , [Q18E] [int] NOT NULL , [Q18F] [int] NOT NULL , [Q18G] [int] NOT NULL , [Q18H] [int] NOT NULL , [Q19A] [int] NOT NULL , [Q19B] [int] NOT NULL , [Q19C] [int] NOT NULL , [Q19D] [int] NOT NULL , [Q19E] [int] NOT NULL , [Q19F] [int] NOT NULL , [Q19G] [int] NOT NULL , [Q19H] [int] NOT NULL , [Q19I] [int] NOT NULL , [Q19J] [int] NOT NULL , [Q19K] [int] NOT NULL , [Q20] [int] NULL , [Q21] [int] NULL , [Q22] [int] NULL , [Q23] [int] NULL , [Q24] [int] NOT NULL , [Q25] [int] NOT NULL , [Submit_Date] [smalldatetime] NOT NULL ) ON [PRIMARY]GOThis is the following select statement I used the return results of the evaluations:SELECT t.LName AS LastName,t.Grade,t.LabNo,q3,q4a_math,q4b_math,q4a_rla,q4b_rla,q5.label AS q5,q6.label AS q6,q7_mo,q7_yr,q8.label AS q8,q9,q10a.label as q10a,q10b.label as q10b,q10c.label as q10c,q10d.label as q10d,q11a.label as q11a,q11b.label as q11b,q11c.label as q11c,q11d.label as q11d,q12a.label as q12a,q12b.label as q12b,q12c.label as q12c,q12d.label as q12d,q12e.label as q12e,q12f.label as q12f,q13.label as q13,q14.label as q14,q15.label as q15,q16.label as q16,q17_classa.label as q17_classa,q17_classb.label as q17_classb,q17_classc.label as q17_classc,q17_classd.label as q17_classd,q17_laba.label as q17_laba,q17_labb.label as q17_labb,q17_labc.label as q17_labc,q17_labd.label as q17_labd,q18a.label as q18a,q18b.label as q18b,q18c.label as q18c,q18d.label as q18d,q18e.label as q18e,q18f.label as q18f,q18g.label as q18g,q18h.label as q18h,q19a.label as q19a,q19b.label as q19b,q19c.label as q19c,q19d.label as q19d,q19e.label as q19e,q19f.label as q19f,q19g.label as q19g,q19h.label as q19h,q19i.label as q19i,q19j.label as q19j,q19k.label as q19k,q20.label as q20,q21.label as q21,q22.label as q22,q23.label as q23,q24,q25,Submit_DateFROM dbo.Teacher_Survey_102005 tsINNER JOIN Teachers t ON ts.Teacher = t.idINNER JOIN Answers q5 ON q5.id = ts.q5INNER JOIN Answers q6 ON q6.id = ts.q6INNER JOIN Answers q8 ON q8.id = ts.q8INNER JOIN Answers q10a ON q10a.id = ts.q10aINNER JOIN Answers q10b ON q10b.id = ts.q10bINNER JOIN Answers q10c ON q10c.id = ts.q10cINNER JOIN Answers q10d ON q10d.id = ts.q10dINNER JOIN Answers q11a ON q11a.id = ts.q11aINNER JOIN Answers q11b ON q11b.id = ts.q11bINNER JOIN Answers q11c ON q11c.id = ts.q11cINNER JOIN Answers q11d ON q11d.id = ts.q11dINNER JOIN Answers q12a ON q12a.id = ts.q12aINNER JOIN Answers q12b ON q12b.id = ts.q12bINNER JOIN Answers q12c ON q12c.id = ts.q12cINNER JOIN Answers q12d ON q12d.id = ts.q12dINNER JOIN Answers q12e ON q12e.id = ts.q12eINNER JOIN Answers q12f ON q12f.id = ts.q12fINNER JOIN Answers q13 ON q13.id = ts.q13INNER JOIN Answers q14 ON q14.id = ts.q14INNER JOIN Answers q15 ON q15.id = ts.q15INNER JOIN Answers q16 ON q16.id = ts.q16INNER JOIN Answers q17_classa ON q17_classa.id = ts.q17_classaINNER JOIN Answers q17_classb ON q17_classb.id = ts.q17_classbINNER JOIN Answers q17_classc ON q17_classc.id = ts.q17_classcINNER JOIN Answers q17_classd ON q17_classd.id = ts.q17_classdINNER JOIN Answers q17_laba ON q17_laba.id = ts.q17_labaINNER JOIN Answers q17_labb ON q17_labb.id = ts.q17_labbINNER JOIN Answers q17_labc ON q17_labc.id = ts.q17_labcINNER JOIN Answers q17_labd ON q17_labd.id = ts.q17_labdINNER JOIN Answers q18a ON q18a.id = ts.q18aINNER JOIN Answers q18b ON q18b.id = ts.q18bINNER JOIN Answers q18c ON q18c.id = ts.q18cINNER JOIN Answers q18d ON q18d.id = ts.q18dINNER JOIN Answers q18e ON q18e.id = ts.q18eINNER JOIN Answers q18f ON q18f.id = ts.q18fINNER JOIN Answers q18g ON q18g.id = ts.q18gINNER JOIN Answers q18h ON q18h.id = ts.q18hINNER JOIN Answers q19a ON q19a.id = ts.q19aINNER JOIN Answers q19b ON q19b.id = ts.q19bINNER JOIN Answers q19c ON q19c.id = ts.q19cINNER JOIN Answers q19d ON q19d.id = ts.q19dINNER JOIN Answers q19e ON q19e.id = ts.q19eINNER JOIN Answers q19f ON q19f.id = ts.q19fINNER JOIN Answers q19g ON q19g.id = ts.q19gINNER JOIN Answers q19h ON q19h.id = ts.q19hINNER JOIN Answers q19i ON q19i.id = ts.q19iINNER JOIN Answers q19j ON q19j.id = ts.q19jINNER JOIN Answers q19k ON q19k.id = ts.q19kINNER JOIN Answers q20 ON q20.id = ts.q20INNER JOIN Answers q21 ON q21.id = ts.q21INNER JOIN Answers q22 ON q22.id = ts.q22INNER JOIN Answers q23 ON q23.id = ts.q23WHERE LabNo = '202728'First off, is there a better way to structure the tables? Separate into a third table?Second, is there a better way to query this information? This seems like a ridiculous select statement.I want to re-write this in a more efficient manner.If I can provide any additional information, please let me know.Any help would be appreciated. |
|