diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a5ed28..cda36b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 2026-06-14 - PostgreSQL engine +You can now choose between SQLite and PostgreSQL in the menu above the schema. PostgreSQL gives proper data types. The editor also gained autocomplete for table and column names. + ## 2026-06-14 - Relational algebra mode You can now answer questions with relational algebra instead of SQL. Use the SQL/RA toggle to switch. Expressions are converted to SQL and run the same way, and the generated SQL is shown for reference. diff --git a/data/oracle-types.ts b/data/oracle-types.ts index 5e702fd..37d929d 100644 --- a/data/oracle-types.ts +++ b/data/oracle-types.ts @@ -94,6 +94,17 @@ export interface OracleQuestion { * these alternatives are only used for validation. */ alternativeQueries?: string[]; + /** + * PostgreSQL-specific reference query, using the same placeholder format. + * Used instead of `query` when generating for a PostgreSQL-engine language. + * Only needed when the query differs from the SQLite version (e.g. EXTRACT vs YEAR). + */ + pgQuery?: string; + /** + * PostgreSQL-specific alternative queries. + * Falls back to `alternativeQueries` if not provided. + */ + pgAlternativeQueries?: string[]; } export interface OracleData { diff --git a/data/oracle.enc b/data/oracle.enc index f27117a..fb947f5 100644 Binary files a/data/oracle.enc and b/data/oracle.enc differ diff --git a/languages/de.ts b/languages/de.ts index 3ccb535..f68baa4 100644 --- a/languages/de.ts +++ b/languages/de.ts @@ -427,40 +427,47 @@ const de: LanguageDefinition = { "Warnung: Diese Speicherdatei wurde in einer anderen Sprache erstellt ({{fileLang}}). Der Import kann zu Problemen führen..", viewLabel: "View", changelog: "Änderungsprotokoll", - modeSQL: "SQL", - modeRA: "Relationale Algebra", - generatedSQL: "Generiertes SQL", - raParseError: "Fehler in relationaler Algebra: {{message}}", - raPlaceholder: "-- Schreibe einen Ausdruck der relationalen Algebra\n-- Klicke auf 'RA-Referenz' für die Syntax", - raReference: "Referenz relationale Algebra", - raUnaryOps: "Unäre Operatoren", - raBinaryOps: "Binäre Operatoren", - raColOp: "Operator", - raColSyntax: "Syntax", - raColDesc: "Beschreibung", - raDescSelection: "Selektion — Zeilen filtern", - raDescProjection: "Projektion — Spalten auswählen", - raDescRename: "Spalten umbenennen", - raDescGroup: "Gruppierung mit Aggregaten", - raDescSort: "Sortierung", - raDescDistinct: "Duplikate entfernen", - raDescCross: "Kreuzprodukt", - raDescNatJoin: "Natürlicher Join", - raDescThetaJoin: "Theta-Join (bedingt)", - raDescUnion: "Vereinigung", - raDescIntersect: "Schnittmenge", - raDescMinus: "Differenz", - raDescDivide: "Division", - raNotation: "Notationsstile", - raNoteBrackets: "— eckige Klammern", - raNoteCurly: "— geschweifte Klammern", - raNoteLaTeX: "— LaTeX-Stil", - raNoteImplicit: "— ohne Klammern", - raNoteChain: "— Verkettung ohne ()", - raAssignment: "Zuweisung", - raNoteAssignment: "Die letzte Zuweisung wird automatisch zurückgegeben", - raConditions: "Bedingungen", - raNoteComparison: "Vergleichsoperatoren: = <> < > <= >=", + modeSQL: "SQL", + modeRA: "Relationale Algebra", + generatedSQL: "Generiertes SQL", + raParseError: "Fehler in relationaler Algebra: {{message}}", + engineLoadFailed: "Die PostgreSQL-Engine konnte nicht geladen werden. Wechsel zurück zu SQLite.", + raPlaceholder: "-- Schreibe einen Ausdruck der relationalen Algebra\n-- Klicke auf 'RA-Referenz' für die Syntax", + raReference: "Referenz relationale Algebra", + raUnaryOps: "Unäre Operatoren", + raBinaryOps: "Binäre Operatoren", + raColOp: "Operator", + raColSyntax: "Syntax", + raColDesc: "Beschreibung", + raDescSelection: "Selektion — Zeilen filtern", + raDescProjection: "Projektion — Spalten auswählen", + raDescRename: "Spalten umbenennen", + raDescGroup: "Gruppierung mit Aggregaten", + raDescSort: "Sortierung", + raDescDistinct: "Duplikate entfernen", + raDescCross: "Kreuzprodukt", + raDescNatJoin: "Natürlicher Join", + raDescThetaJoin: "Theta-Join (bedingt)", + raDescUnion: "Vereinigung", + raDescIntersect: "Schnittmenge", + raDescMinus: "Differenz", + raDescDivide: "Division", + raNotation: "Notationsstile", + raNoteBrackets: "— eckige Klammern", + raNoteCurly: "— geschweifte Klammern", + raNoteLaTeX: "— LaTeX-Stil", + raNoteImplicit: "— ohne Klammern", + raNoteChain: "— Verkettung ohne ()", + raAssignment: "Zuweisung", + raNoteAssignment: "Die letzte Zuweisung wird automatisch zurückgegeben", + raConditions: "Bedingungen", + raNoteComparison: "Vergleichsoperatoren: = <> < > <= >=", + editorSettings: "Editor-Einstellungen", + settingAutocomplete: "Autovervollständigung", + settingLineNumbers: "Zeilennummern", + settingHighlightActiveLine: "Aktive Zeile hervorheben", + sqlReferencePostgresql: "PostgreSQL-Dokumentation", + engineMismatchWarning: "Warnung: Diese Speicherdatei wurde mit einer anderen Datenbank-Engine erstellt ({{fileEngine}}). Der Import kann zu Problemen führen.", }, }; diff --git a/languages/en.ts b/languages/en.ts index 9d179db..4676f8a 100644 --- a/languages/en.ts +++ b/languages/en.ts @@ -431,6 +431,7 @@ const en: LanguageDefinition = { modeRA: "Relational Algebra", generatedSQL: "Generated SQL", raParseError: "Relational algebra error: {{message}}", + engineLoadFailed: "Failed to load the PostgreSQL engine. Falling back to SQLite.", raPlaceholder: "-- Write a relational algebra expression\n-- Click 'RA Reference' for syntax", raReference: "Relational Algebra Reference", raUnaryOps: "Unary Operators", @@ -461,6 +462,12 @@ const en: LanguageDefinition = { raNoteAssignment: "Last assignment is returned automatically", raConditions: "Conditions", raNoteComparison: "Comparison operators: = <> < > <= >=", + editorSettings: "Editor Settings", + settingAutocomplete: "Autocomplete", + settingLineNumbers: "Line Numbers", + settingHighlightActiveLine: "Highlight Active Line", + sqlReferencePostgresql: "PostgreSQL Documentation", + engineMismatchWarning: "Warning: This save file was created with a different database engine ({{fileEngine}}). Importing may cause issues.", }, }; diff --git a/languages/sv-pg.ts b/languages/sv-pg.ts new file mode 100644 index 0000000..2a0ec82 --- /dev/null +++ b/languages/sv-pg.ts @@ -0,0 +1,11 @@ +import { LanguageDefinition } from "./types"; +import sv from "./sv"; + +const svPg: LanguageDefinition = { + ...sv, + code: "sv-pg", + displayName: "Svenska (PostgreSQL)", + engine: "postgresql", +}; + +export default svPg; diff --git a/languages/sv.ts b/languages/sv.ts index 05b7dc5..ff12ef2 100644 --- a/languages/sv.ts +++ b/languages/sv.ts @@ -431,6 +431,7 @@ const sv: LanguageDefinition = { modeRA: "Relationsalgebra", generatedSQL: "Genererad SQL", raParseError: "Relationsalgebra-fel: {{message}}", + engineLoadFailed: "Kunde inte ladda PostgreSQL-motorn. Återgår till SQLite.", raPlaceholder: "-- Skriv ett relationsalgebrauttryck\n-- Klicka på 'RA-referens' för syntax", raReference: "Relationsalgebrareferens", raUnaryOps: "Unära operatorer", @@ -461,6 +462,12 @@ const sv: LanguageDefinition = { raNoteAssignment: "Sista tilldelningen returneras automatiskt", raConditions: "Villkor", raNoteComparison: "Jämförelseoperatorer: = <> < > <= >=", + editorSettings: "Editorinställningar", + settingAutocomplete: "Autokomplettering", + settingLineNumbers: "Radnummer", + settingHighlightActiveLine: "Markera aktiv rad", + sqlReferencePostgresql: "PostgreSQL-dokumentation", + engineMismatchWarning: "Varning: Denna sparfil skapades med en annan databasmotor ({{fileEngine}}). Import kan orsaka problem.", }, }; diff --git a/languages/types.ts b/languages/types.ts index c87566d..4b48343 100644 --- a/languages/types.ts +++ b/languages/types.ts @@ -39,6 +39,8 @@ export interface LanguageDefinition { code: string; /** Display name in the language itself, e.g. "Svenska", "English" */ displayName: string; + /** Database engine: "sqlite" (default) or "postgresql" */ + engine?: "sqlite" | "postgresql"; // ── Data: Names ────────────────────────────────────────────── /** First names pool (min 15, indexed by canonical person slot) */ diff --git a/package-lock.json b/package-lock.json index c1dd6e8..ffc1b2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "sql-validator", "version": "1.0.0", "dependencies": { + "@codemirror/lang-sql": "^6.10.0", + "@codemirror/theme-one-dark": "^6.1.3", + "@electric-sql/pglite": "^0.4.1", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -25,6 +28,7 @@ "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.13", "@types/sql.js": "^1.4.9", + "@uiw/react-codemirror": "^4.25.8", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "crypto-js": "^4.2.0", @@ -34,7 +38,6 @@ "prismjs": "^1.30.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-simple-code-editor": "^0.13.1", "react-syntax-highlighter": "^16.1.0", "sql-formatter": "^15.3.1", "sql.js": "^1.10.3", @@ -472,6 +475,113 @@ "specificity": "bin/cli.js" } }, + "node_modules/@codemirror/autocomplete": { + "version": "6.20.1", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.20.1.tgz", + "integrity": "sha512-1cvg3Vz1dSSToCNlJfRA2WSI4ht3K+WplO0UMOgmUYPivCyy2oueZY6Lx7M9wThm7SDUBViRmuT+OG/i8+ON9A==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.10.3.tgz", + "integrity": "sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.6.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-sql": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.10.0.tgz", + "integrity": "sha512-6ayPkEd/yRw0XKBx5uAiToSgGECo/GY2NoJIHXIIQh1EVwLuKoU8BP/qK0qH5NLXAbtJRLuT73hx7P9X34iO4w==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.12.2", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.12.2.tgz", + "integrity": "sha512-jEPmz2nGGDxhRTg3lTpzmIyGKxz3Gp3SJES4b0nAuE5SWQoKdT5GoQ69cwMmFd+wvFUhYirtDTr0/DRHpQAyWg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.5.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.9.5", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.9.5.tgz", + "integrity": "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.35.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.6.0.tgz", + "integrity": "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.37.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.6.0.tgz", + "integrity": "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ==", + "license": "MIT", + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/theme-one-dark": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.3.tgz", + "integrity": "sha512-NzBdIvEJmx6fjeremiGp3t/okrLPYT0d9orIc7AFun8oZcRk58aejkqhv6spnz4MLAevrKNPMQYXEWMg4s+sKA==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/highlight": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.40.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.40.0.tgz", + "integrity": "sha512-WA0zdU7xfF10+5I3HhUUq3kqOx3KjqmtQ9lqZjfK7jtYk4G72YW9rezcSywpaUMCWOMlq+6E0pO1IWg1TNIhtg==", + "license": "MIT", + "dependencies": { + "@codemirror/state": "^6.6.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", @@ -612,6 +722,12 @@ "node": ">=20.19.0" } }, + "node_modules/@electric-sql/pglite": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.4.1.tgz", + "integrity": "sha512-mZ9NzzUSYPOCnxHH1oAHPRzoMFJHY472raDKwXl/+6oPbpdJ7g8LsCN4FSaIIfkiCKHhb3iF/Zqo3NYxaIhU7Q==", + "license": "Apache-2.0" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", @@ -1526,6 +1642,36 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lezer/common": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.5.1.tgz", + "integrity": "sha512-6YRVG9vBkaY7p1IVxL4s44n5nUnaNnGM2/AckNgYOnxTG2kWh1vR8BMxPseWPjRNpb5VtXnMpeYAEAADoRV1Iw==", + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.3.tgz", + "integrity": "sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.8.tgz", + "integrity": "sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3403,6 +3549,59 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@uiw/codemirror-extensions-basic-setup": { + "version": "4.25.8", + "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.25.8.tgz", + "integrity": "sha512-9Rr+liiBmK4xzZHszL+twNRJApthqmITBwDP3emNTtTrkBFN4gHlqfp+nodKmoVt1+bUH1qQCtyqt+7dbDTHiw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@codemirror/autocomplete": ">=6.0.0", + "@codemirror/commands": ">=6.0.0", + "@codemirror/language": ">=6.0.0", + "@codemirror/lint": ">=6.0.0", + "@codemirror/search": ">=6.0.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/view": ">=6.0.0" + } + }, + "node_modules/@uiw/react-codemirror": { + "version": "4.25.8", + "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.25.8.tgz", + "integrity": "sha512-A0aLOuJZm2yJ+U9GlMFwxwFciztjd5LhcAG4SMqFxdD58wH+sCQXuY4UU5J2hqgS390qAlShtUgREvJPUonbuQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.6", + "@codemirror/commands": "^6.1.0", + "@codemirror/state": "^6.1.1", + "@codemirror/theme-one-dark": "^6.0.0", + "@uiw/codemirror-extensions-basic-setup": "4.25.8", + "codemirror": "^6.0.0" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.11.0", + "@codemirror/state": ">=6.0.0", + "@codemirror/theme-one-dark": ">=6.0.0", + "@codemirror/view": ">=6.0.0", + "codemirror": ">=6.0.0", + "react": ">=17.0.0", + "react-dom": ">=17.0.0" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -4419,6 +4618,21 @@ "node": ">=6" } }, + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4597,6 +4811,12 @@ "dev": true, "license": "MIT" }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -9006,16 +9226,6 @@ } } }, - "node_modules/react-simple-code-editor": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/react-simple-code-editor/-/react-simple-code-editor-0.13.1.tgz", - "integrity": "sha512-XYeVwRZwgyKtjNIYcAEgg2FaQcCZwhbarnkJIV20U2wkCU9q/CPFBo8nRXrK4GXUz3AvbqZFsZRrpUTkqqEYyQ==", - "license": "MIT", - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -10129,6 +10339,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT" + }, "node_modules/sucrase": { "version": "3.35.1", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", @@ -11050,6 +11266,12 @@ "dev": true, "license": "MIT" }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", diff --git a/package.json b/package.json index 8db643e..73f151b 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "private": true, "dependencies": { + "@codemirror/lang-sql": "^6.10.0", + "@codemirror/theme-one-dark": "^6.1.3", + "@electric-sql/pglite": "^0.4.1", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", @@ -20,6 +23,7 @@ "@types/react-dom": "^18.3.0", "@types/react-syntax-highlighter": "^15.5.13", "@types/sql.js": "^1.4.9", + "@uiw/react-codemirror": "^4.25.8", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "crypto-js": "^4.2.0", @@ -29,7 +33,6 @@ "prismjs": "^1.30.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-simple-code-editor": "^0.13.1", "react-syntax-highlighter": "^16.1.0", "sql-formatter": "^15.3.1", "sql.js": "^1.10.3", diff --git a/public/languages/de-pg/data.sql b/public/languages/de-pg/data.sql new file mode 100644 index 0000000..ecf15a5 --- /dev/null +++ b/public/languages/de-pg/data.sql @@ -0,0 +1,141 @@ +CREATE TABLE Person (persNr TEXT NOT NULL, name TEXT NOT NULL, strasse TEXT NOT NULL, plz TEXT NOT NULL, ort TEXT NOT NULL, telefon TEXT NOT NULL, PRIMARY KEY (persNr)); +CREATE TABLE Seminarraum (id INTEGER NOT NULL, name TEXT NOT NULL, anzahlPlaetze INTEGER NOT NULL, PRIMARY KEY (id)); +CREATE UNIQUE INDEX rum_namn ON Seminarraum (name); +CREATE TABLE Student (persNr TEXT NOT NULL, nachteilsausgleich BOOLEAN NOT NULL, CONSTRAINT STUDENT_PK PRIMARY KEY (persNr), CONSTRAINT Student_Person_FK FOREIGN KEY (persNr) REFERENCES Person (persNr) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Dozent (persNr TEXT NOT NULL, bueroNr INTEGER NOT NULL, CONSTRAINT teacher_pk PRIMARY KEY (persNr), CONSTRAINT fk_teacher_person FOREIGN KEY (persNr) REFERENCES Person (persNr) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Modul (kuerzel TEXT NOT NULL, name TEXT NOT NULL, kurstage INTEGER NOT NULL, preis INTEGER NOT NULL, beschreibung TEXT NOT NULL, PRIMARY KEY (kuerzel)); +CREATE UNIQUE INDEX kurs_ben ON Modul (name); +CREATE TABLE Kursdurchfuehrung (modulkuerzel TEXT NOT NULL, startdatum DATE NOT NULL, dozentNr TEXT NOT NULL, raumID INTEGER NOT NULL, CONSTRAINT courseinstance_pk PRIMARY KEY (modulkuerzel, startdatum), CONSTRAINT fk_courseinstance_course FOREIGN KEY (modulkuerzel) REFERENCES Modul (kuerzel) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_teacher FOREIGN KEY (dozentNr) REFERENCES Dozent (persNr) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_room FOREIGN KEY (raumID) REFERENCES Seminarraum (id) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Teilnehmer (studNr TEXT NOT NULL, modulkuerzel TEXT NOT NULL, startdatum DATE NOT NULL, CONSTRAINT participation_pk PRIMARY KEY (modulkuerzel, startdatum, studNr), CONSTRAINT fk_participation_courseinstance FOREIGN KEY (modulkuerzel, startdatum) REFERENCES Kursdurchfuehrung (modulkuerzel, startdatum) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_participation_student FOREIGN KEY (studNr) REFERENCES Student (persNr) ON DELETE RESTRICT ON UPDATE CASCADE); +INSERT INTO Person VALUES ('111017-0001', 'Lukas Meier', 'Bahnhofstrasse 1', '6900', 'Lugano', '+41 76 123 45 67'); +INSERT INTO Person VALUES ('111017-0002', 'Marco Rossi', 'Marktgasse 2', '9000', 'St. Gallen', '+41 77 234 56 78'); +INSERT INTO Person VALUES ('111017-0003', 'Jean Dupont', 'Bahnhofplatz 3', '8001', 'Zürich', '+41 78 345 67 89'); +INSERT INTO Person VALUES ('111017-0004', 'Sophie Keller', 'Dorfstrasse 4', '6003', 'Luzern', '+41 79 456 78 90'); +INSERT INTO Person VALUES ('111017-0005', 'Anna Bianchi', 'Zollstrasse 5', '8044', 'Zürich', '+41 76 567 89 01'); +INSERT INTO Person VALUES ('121017-0001', 'Marco Schmid', 'Burgstrasse 6', '8401', 'Winterthur', '+41 77 678 90 12'); +INSERT INTO Person VALUES ('121017-0002', 'Peter Müller', 'Alte Landstrasse 3', '3006', 'Bern', '+41 78 789 01 23'); +INSERT INTO Person VALUES ('121017-0003', 'Claire Steiner', 'Kirchgasse 4', '8404', 'Winterthur', '+41 79 890 12 34'); +INSERT INTO Person VALUES ('121017-0004', 'Giulia Brunner', 'Schulstrasse 1', '3004', 'Bern', '+41 76 901 23 45'); +INSERT INTO Person VALUES ('121017-0005', 'Thomas Dubois', 'Birkenweg 3', '4051', 'Basel', '+41 77 012 34 56'); +INSERT INTO Person VALUES ('121017-0006', 'Daniel Rochat', 'Eichtalstrasse 2', '3007', 'Bern', '+41 78 123 45 67'); +INSERT INTO Person VALUES ('121017-0007', 'Monika Frei', 'Eichtalstrasse 24', '3006', 'Bern', '+41 79 234 56 78'); +INSERT INTO Person VALUES ('121017-0008', 'Andrea Huber', 'St. Jakobstrasse 112', '8640', 'Rapperswil', '+41 76 345 67 89'); +INSERT INTO Person VALUES ('121017-0009', 'Pascal Baumann', 'Auenweg 5', '4051', 'Basel', '+41 77 456 78 90'); +INSERT INTO Person VALUES ('121017-0010', 'Isabelle Haller', 'Lillgatan 3', '6003', 'Luzern', '+41 78 567 89 01'); +INSERT INTO Person VALUES ('121018-0040', 'Chiara Weber', 'Industriestrasse 44', '8001', 'Zürich', '+41 79 678 90 12'); +INSERT INTO Person VALUES ('121117-0041', 'Pascal Conti', 'Rosengartenstrasse 15b', '8002', 'Zürich', '+41 76 789 01 23'); +INSERT INTO Person VALUES ('131017-0050', 'Jean Richter', 'Abendrain 4', '4051', 'Basel', '+41 77 890 12 33'); +INSERT INTO Person VALUES ('131017-0051', 'Pascal Baumann', 'Birkenweg 12', '4051', 'Basel', '+41 78 901 23 45'); +INSERT INTO Person VALUES ('131017-0052', 'Thomas Dubois', 'Birkenweg 1', '4051', 'Basel', '+41 79 012 34 56'); +INSERT INTO Person VALUES ('131017-0053', 'Marco Schmid', 'Dorfstrasse 63', '6001', 'Luzern', '+41 78 250 28 55'); +INSERT INTO Seminarraum VALUES (1, 'Jupiter', 12); +INSERT INTO Seminarraum VALUES (2, 'Orion', 24); +INSERT INTO Seminarraum VALUES (3, 'Sirius', 16); +INSERT INTO Seminarraum VALUES (4, 'Tellus', 32); +INSERT INTO Seminarraum VALUES (5, 'Saturnus', 24); +INSERT INTO Student VALUES ('111017-0001', FALSE); +INSERT INTO Student VALUES ('121017-0001', FALSE); +INSERT INTO Student VALUES ('121017-0002', TRUE); +INSERT INTO Student VALUES ('121017-0003', FALSE); +INSERT INTO Student VALUES ('121017-0004', FALSE); +INSERT INTO Student VALUES ('121017-0005', FALSE); +INSERT INTO Student VALUES ('121017-0006', TRUE); +INSERT INTO Student VALUES ('121017-0007', FALSE); +INSERT INTO Student VALUES ('121017-0008', FALSE); +INSERT INTO Student VALUES ('121017-0009', FALSE); +INSERT INTO Student VALUES ('121017-0010', TRUE); +INSERT INTO Student VALUES ('121018-0040', FALSE); +INSERT INTO Student VALUES ('121117-0041', TRUE); +INSERT INTO Student VALUES ('131017-0050', FALSE); +INSERT INTO Student VALUES ('131017-0051', FALSE); +INSERT INTO Student VALUES ('131017-0052', TRUE); +INSERT INTO Student VALUES ('131017-0053', FALSE); +INSERT INTO Dozent VALUES ('111017-0001', 634); +INSERT INTO Dozent VALUES ('111017-0002', 604); +INSERT INTO Dozent VALUES ('111017-0003', 603); +INSERT INTO Dozent VALUES ('111017-0004', 605); +INSERT INTO Dozent VALUES ('111017-0005', 622); +INSERT INTO Dozent VALUES ('131017-0050', 558); +INSERT INTO Modul VALUES ('DBM1', 'Datenbankmanagement 1', 2, 2800, 'DB-Grundlagen, Normalisierung, Modellierung, SQL'); +INSERT INTO Modul VALUES ('PDBD', 'Physisches Datenbank-Design', 5, 7200, 'Speicherstrukturen, Index, Denormalisierung'); +INSERT INTO Modul VALUES ('Java1', 'Java-Grundkurs', 5, 6700, 'Grundlagen der Programmierung mit Java'); +INSERT INTO Modul VALUES ('Java2', 'Java-Fortsetzungskurs', 4, 6000, 'Fortgeschrittene Programmierung mit Java'); +INSERT INTO Modul VALUES ('LDBD', 'Logisches Datenbank-Design', 4, 6000, 'Fortgeschrittenes Design, Analysemuster, Metamodellierung'); +INSERT INTO Modul VALUES ('Log1', 'Logik', 3, 4500, 'Prädikatenlogik erster und höherer Stufen, sowie Aussagenlogik'); +INSERT INTO Kursdurchfuehrung VALUES ('Java1', '2008-03-06T00:00:00.000Z', '111017-0002', 4); +INSERT INTO Kursdurchfuehrung VALUES ('DBM1', '2008-04-02T00:00:00.000Z', '111017-0005', 3); +INSERT INTO Kursdurchfuehrung VALUES ('Java2', '2008-04-16T00:00:00.000Z', '111017-0002', 2); +INSERT INTO Kursdurchfuehrung VALUES ('Log1', '2008-04-16T00:00:00.000Z', '111017-0003', 1); +INSERT INTO Kursdurchfuehrung VALUES ('Java1', '2008-05-06T00:00:00.000Z', '111017-0002', 1); +INSERT INTO Kursdurchfuehrung VALUES ('LDBD', '2008-05-06T00:00:00.000Z', '111017-0005', 3); +INSERT INTO Kursdurchfuehrung VALUES ('PDBD', '2008-05-09T00:00:00.000Z', '111017-0004', 1); +INSERT INTO Kursdurchfuehrung VALUES ('Java1', '2008-09-02T00:00:00.000Z', '111017-0003', 4); +INSERT INTO Kursdurchfuehrung VALUES ('LDBD', '2008-09-02T00:00:00.000Z', '111017-0004', 2); +INSERT INTO Kursdurchfuehrung VALUES ('Java2', '2009-01-22T00:00:00.000Z', '111017-0002', 2); +INSERT INTO Kursdurchfuehrung VALUES ('DBM1', '2009-01-28T00:00:00.000Z', '111017-0005', 1); +INSERT INTO Kursdurchfuehrung VALUES ('Log1', '2009-09-17T00:00:00.000Z', '111017-0005', 1); +INSERT INTO Kursdurchfuehrung VALUES ('DBM1', '2010-02-15T00:00:00.000Z', '111017-0004', 3); +INSERT INTO Kursdurchfuehrung VALUES ('Java2', '2010-04-11T00:00:00.000Z', '131017-0050', 4); +INSERT INTO Kursdurchfuehrung VALUES ('Java1', '2010-05-01T00:00:00.000Z', '111017-0003', 5); +INSERT INTO Kursdurchfuehrung VALUES ('Log1', '2010-05-01T00:00:00.000Z', '111017-0002', 1); +INSERT INTO Kursdurchfuehrung VALUES ('DBM1', '2010-09-22T00:00:00.000Z', '131017-0050', 3); +INSERT INTO Kursdurchfuehrung VALUES ('LDBD', '2010-09-24T00:00:00.000Z', '111017-0004', 5); +INSERT INTO Kursdurchfuehrung VALUES ('Java1', '2011-05-01T00:00:00.000Z', '111017-0002', 5); +INSERT INTO Teilnehmer VALUES ('121017-0001', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0003', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0009', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0010', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0051', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0001', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0002', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0003', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0010', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0002', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0005', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0007', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0004', 'Log1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0005', 'Log1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0002', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0001', 'LDBD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0007', 'LDBD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0003', 'PDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'PDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'PDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0001', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0009', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0050', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0002', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0009', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0010', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0051', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0003', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0005', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0051', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0004', 'Log1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121117-0041', 'Log1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0003', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0010', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0004', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0005', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0007', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0010', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0006', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0007', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0005', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121018-0040', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0053', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0004', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121018-0040', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121117-0041', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('131017-0052', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121017-0008', 'LDBD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121018-0040', 'LDBD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Teilnehmer VALUES ('121117-0041', 'LDBD', '2010-09-24T00:00:00.000Z'); \ No newline at end of file diff --git a/public/languages/de-pg/questionpool.json b/public/languages/de-pg/questionpool.json new file mode 100644 index 0000000..a17ff60 --- /dev/null +++ b/public/languages/de-pg/questionpool.json @@ -0,0 +1 @@ +{"language":"de","engine":"postgresql","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Basel wohnen!","display_sequence":"A","result":{"columns":["persnr","name","strasse","plz"],"values":[["121017-0005","Thomas Dubois","Birkenweg 3","4051"],["121017-0009","Pascal Baumann","Auenweg 5","4051"],["131017-0050","Jean Richter","Abendrain 4","4051"],["131017-0051","Pascal Baumann","Birkenweg 12","4051"],["131017-0052","Thomas Dubois","Birkenweg 1","4051"]]}},{"id":2,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"B","result":{"columns":["persnr","name","telefon"],"values":[["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":3,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Bern wohnen!","display_sequence":"C","result":{"columns":["persnr","name","strasse","plz"],"values":[["121017-0002","Peter Müller","Alte Landstrasse 3","3006"],["121017-0004","Giulia Brunner","Schulstrasse 1","3004"],["121017-0006","Daniel Rochat","Eichtalstrasse 2","3007"],["121017-0007","Monika Frei","Eichtalstrasse 24","3006"]]}},{"id":4,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"D","result":{"columns":["persnr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":5,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","telefon"],"values":[["Thomas Dubois","Birkenweg 3","4051","+41 77 012 34 56"],["Pascal Baumann","Auenweg 5","4051","+41 77 456 78 90"],["Jean Richter","Abendrain 4","4051","+41 77 890 12 33"],["Pascal Baumann","Birkenweg 12","4051","+41 78 901 23 45"],["Thomas Dubois","Birkenweg 1","4051","+41 79 012 34 56"]]}},{"id":6,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","telefon"],"values":[["Peter Müller","Alte Landstrasse 3","3006","+41 78 789 01 23"],["Giulia Brunner","Schulstrasse 1","3004","+41 76 901 23 45"],["Daniel Rochat","Eichtalstrasse 2","3007","+41 78 123 45 67"],["Monika Frei","Eichtalstrasse 24","3006","+41 79 234 56 78"]]}},{"id":7,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 Kurstagen aus!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 4 Kurstage aus!","display_sequence":"H","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"A","result":{"columns":["persnr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0009","Pascal Baumann","Basel"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":10,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel oder in Winterthur wohnen!","display_sequence":"B","result":{"columns":["persnr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":11,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Luzern wohnen!","display_sequence":"C","result":{"columns":["persnr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":12,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern oder in Winterthur wohnen!","display_sequence":"D","result":{"columns":["persnr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":13,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","ort"],"values":[["Sophie Keller","Dorfstrasse 4","6003","Luzern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"],["Marco Schmid","Dorfstrasse 63","6001","Luzern"]]}},{"id":14,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":15,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Luzern oder in Winterthur wohnen!","display_sequence":"G","result":{"columns":["persnr","name","telefon"],"values":[["111017-0004","Sophie Keller","+41 79 456 78 90"],["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":16,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"H","result":{"columns":["persnr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0005","Thomas Dubois","Basel"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":17,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Zürich oder in Luzern wohnen!","display_sequence":"I","result":{"columns":["persnr","name","telefon"],"values":[["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":18,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Zürich wohnen!","display_sequence":"J","result":{"columns":["name","strasse","plz","ort"],"values":[["Jean Dupont","Bahnhofplatz 3","8001","Zürich"],["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":19,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 oder 4 Kurstagen aus!","display_sequence":"K","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["dozentnr"],"values":[["111017-0002"],["111017-0003"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["dozentnr"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["dozentnr"],"values":[["111017-0004"],["111017-0005"],["131017-0050"]]}},{"id":23,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["dozentnr"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["dozentnr"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["dozentnr"],"values":[["111017-0004"],["111017-0005"],["131017-0050"]]}},{"id":26,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["dozentnr"],"values":[["111017-0004"],["111017-0005"]]}},{"id":27,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java1 teilgenommen haben!","display_sequence":"H","result":{"columns":["studnr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0006"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":28,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel DBM1 teilgenommen haben!","display_sequence":"I","result":{"columns":["studnr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0010"],["121018-0040"],["121117-0041"],["131017-0051"],["131017-0052"]]}},{"id":29,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java2 teilgenommen haben!","display_sequence":"J","result":{"columns":["studnr"],"values":[["121017-0002"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":30,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel LDBD teilgenommen haben!","display_sequence":"K","result":{"columns":["studnr"],"values":[["121017-0001"],["121017-0006"],["121017-0007"],["121017-0008"],["121018-0040"],["121117-0041"],["131017-0050"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":32,"description":"Gib die Personennummer, den Namen und die Büronummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persnr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":33,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persnr","name","strasse","plz"],"values":[["111017-0004","Sophie Keller","Dorfstrasse 4","6003"],["111017-0005","Anna Bianchi","Zollstrasse 5","8044"],["131017-0050","Jean Richter","Abendrain 4","4051"]]}},{"id":34,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"]]}},{"id":35,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persnr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["131017-0050","Jean Richter","Basel"]]}},{"id":36,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Jean Richter","Abendrain 4","4051","Basel"],["Sophie Keller","Dorfstrasse 4","6003","Luzern"]]}},{"id":37,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persnr","name","telefon"],"values":[["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":38,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"H","result":{"columns":["persnr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0003","Jean Dupont","Zürich"],["111017-0004","Sophie Keller","Luzern"],["111017-0005","Anna Bianchi","Zürich"]]}},{"id":39,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"I","result":{"columns":["persnr","name","strasse","plz"],"values":[["111017-0002","Marco Rossi","Marktgasse 2","9000"],["111017-0004","Sophie Keller","Dorfstrasse 4","6003"]]}},{"id":40,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"J","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":41,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"K","result":{"columns":["persnr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["111017-0005","Anna Bianchi","Zürich"]]}},{"id":42,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"L","result":{"columns":["name","strasse","plz","ort"],"values":[["Jean Dupont","Bahnhofplatz 3","8001","Zürich"],["Marco Rossi","Marktgasse 2","9000","St. Gallen"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0002","Marco Rossi",604],["111017-0003","Jean Dupont",603],["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}},{"id":44,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0002","Marco Rossi",604],["111017-0004","Sophie Keller",605]]}},{"id":45,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622],["131017-0050","Jean Richter",558]]}},{"id":46,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0002","Marco Rossi",604],["111017-0003","Jean Dupont",603]]}},{"id":47,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0002","Marco Rossi",604],["131017-0050","Jean Richter",558]]}},{"id":48,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622],["131017-0050","Jean Richter",558]]}},{"id":49,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["studnr"],"values":[["121017-0002"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0008"],["121018-0040"],["121117-0041"],["131017-0051"],["131017-0053"]]}},{"id":51,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["studnr"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0050"],["131017-0051"]]}},{"id":52,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["studnr"],"values":[["121017-0001"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":53,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["studnr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0004"],["121017-0006"],["121017-0007"],["121017-0010"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["persnr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":55,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["persnr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":56,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["persnr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0051","Pascal Baumann","+41 78 901 23 45"]]}},{"id":57,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["persnr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":58,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"E","result":{"columns":["name","strasse","ort","telefon"],"values":[["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Chiara Weber","Industriestrasse 44","Zürich","+41 79 678 90 12"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Daniel Rochat","Eichtalstrasse 2","Bern","+41 78 123 45 67"],["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Marco Schmid","Dorfstrasse 63","Luzern","+41 78 250 28 55"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Pascal Conti","Rosengartenstrasse 15b","Zürich","+41 76 789 01 23"],["Peter Müller","Alte Landstrasse 3","Bern","+41 78 789 01 23"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"]]}},{"id":59,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Andrea Huber","St. Jakobstrasse 112","8640","Rapperswil"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"]]}},{"id":60,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"G","result":{"columns":["name","strasse","ort","telefon"],"values":[["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Isabelle Haller","Lillgatan 3","Luzern","+41 78 567 89 01"],["Marco Schmid","Burgstrasse 6","Winterthur","+41 77 678 90 12"],["Monika Frei","Eichtalstrasse 24","Bern","+41 79 234 56 78"],["Pascal Baumann","Auenweg 5","Basel","+41 77 456 78 90"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"]]}},{"id":61,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"H","result":{"columns":["name","strasse","plz","ort"],"values":[["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Claire Steiner","Kirchgasse 4","8404","Winterthur"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Marco Schmid","Burgstrasse 6","8401","Winterthur"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Gib die Anzahl der Kursdurchführungen aus, an denen jeder Student teilgenommen hat! Zeige die Personennummer des Studierenden, den Namen des Studierenden und die Anzahl!","display_sequence":"A","result":{"columns":["persnr","name","count"],"values":[["121017-0006","Daniel Rochat",6],["121017-0003","Claire Steiner",5],["121117-0041","Pascal Conti",3],["131017-0053","Marco Schmid",1],["121017-0004","Giulia Brunner",4],["131017-0051","Pascal Baumann",3],["121017-0002","Peter Müller",4],["121017-0001","Marco Schmid",4],["121017-0008","Andrea Huber",6],["121018-0040","Chiara Weber",3],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121017-0005","Thomas Dubois",5],["131017-0052","Thomas Dubois",1],["111017-0001","Lukas Meier",0],["121017-0007","Monika Frei",4],["131017-0050","Jean Richter",1]]},"alternative_results":[{"columns":["persnr","name","count"],"values":[["121017-0006","Daniel Rochat",6],["121017-0003","Claire Steiner",5],["121117-0041","Pascal Conti",3],["131017-0053","Marco Schmid",1],["121017-0004","Giulia Brunner",4],["131017-0051","Pascal Baumann",3],["121017-0002","Peter Müller",4],["121017-0001","Marco Schmid",4],["121017-0008","Andrea Huber",6],["121018-0040","Chiara Weber",3],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121017-0005","Thomas Dubois",5],["131017-0052","Thomas Dubois",1],["121017-0007","Monika Frei",4],["131017-0050","Jean Richter",1]]}]},{"id":63,"description":"Gib die Anzahl der Kursdurchführungen aus, für die jeder Seminarraum verwendet wurde! Zeige den Namen des Seminarraums, die Kapazität des Seminarraums und die Anzahl!","display_sequence":"B","result":{"columns":["name","anzahlplaetze","count"],"values":[["Orion",24,3],["Sirius",16,4],["Saturnus",24,3],["Tellus",32,3],["Jupiter",12,6]]},"alternative_results":[{"columns":["name","anzahlplaetze","count"],"values":[["Tellus",32,3],["Orion",24,3],["Sirius",16,4],["Saturnus",24,3],["Jupiter",12,6]]}]},{"id":64,"description":"Gib die Anzahl der Kursdurchführungen aus, die jedes Modul hatte! Zeige das Kürzel des Moduls, den Namen des Moduls und die Anzahl!","display_sequence":"C","result":{"columns":["kuerzel","name","count"],"values":[["Java2","Java-Fortsetzungskurs",3],["DBM1","Datenbankmanagement 1",4],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1],["LDBD","Logisches Datenbank-Design",3],["Java1","Java-Grundkurs",5]]},"alternative_results":[{"columns":["kuerzel","name","count"],"values":[["Java2","Java-Fortsetzungskurs",3],["DBM1","Datenbankmanagement 1",4],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1],["LDBD","Logisches Datenbank-Design",3],["Java1","Java-Grundkurs",5]]}]},{"id":65,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent gehalten hat! Zeige die Personennummer des Dozenten, den Namen des Dozenten und die Anzahl!","display_sequence":"D","result":{"columns":["persnr","name","count"],"values":[["111017-0005","Anna Bianchi",4],["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["111017-0001","Lukas Meier",0],["131017-0050","Jean Richter",2]]},"alternative_results":[{"columns":["persnr","name","count"],"values":[["111017-0005","Anna Bianchi",4],["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["131017-0050","Jean Richter",2]]}]},{"id":66,"description":"Gib die Anzahl der teilnehmenden Studierenden für jede Kursdurchführung aus! Zeige Modulkürzel und Modulname der Kursdurchführung, Startdatum der Kursdurchführung und die Anzahl!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum","count"],"values":[["DBM1","Datenbankmanagement 1","2010-09-22",4],["LDBD","Logisches Datenbank-Design","2008-09-02",3],["Java2","Java-Fortsetzungskurs","2010-04-11",4],["Java1","Java-Grundkurs","2010-05-01",3],["Java1","Java-Grundkurs","2008-03-06",6],["LDBD","Logisches Datenbank-Design","2010-09-24",3],["Java1","Java-Grundkurs","2008-05-06",2],["DBM1","Datenbankmanagement 1","2008-04-02",4],["LDBD","Logisches Datenbank-Design","2008-05-06",2],["Java2","Java-Fortsetzungskurs","2009-01-22",4],["PDBD","Physisches Datenbank-Design","2008-05-09",3],["Log1","Logik","2008-04-16",2],["Java1","Java-Grundkurs","2008-09-02",2],["DBM1","Datenbankmanagement 1","2010-02-15",3],["Java1","Java-Grundkurs","2011-05-01",0],["Log1","Logik","2010-05-01",4],["DBM1","Datenbankmanagement 1","2009-01-28",3],["Log1","Logik","2009-09-17",2],["Java2","Java-Fortsetzungskurs","2008-04-16",4]]},"alternative_results":[{"columns":["modulkuerzel","name","startdatum","count"],"values":[["DBM1","Datenbankmanagement 1","2010-09-22",4],["LDBD","Logisches Datenbank-Design","2008-09-02",3],["Java2","Java-Fortsetzungskurs","2010-04-11",4],["Java1","Java-Grundkurs","2010-05-01",3],["Java1","Java-Grundkurs","2008-03-06",6],["LDBD","Logisches Datenbank-Design","2010-09-24",3],["Java1","Java-Grundkurs","2008-05-06",2],["DBM1","Datenbankmanagement 1","2008-04-02",4],["LDBD","Logisches Datenbank-Design","2008-05-06",2],["Java2","Java-Fortsetzungskurs","2009-01-22",4],["PDBD","Physisches Datenbank-Design","2008-05-09",3],["Log1","Logik","2008-04-16",2],["Java1","Java-Grundkurs","2008-09-02",2],["DBM1","Datenbankmanagement 1","2010-02-15",3],["Log1","Logik","2010-05-01",4],["DBM1","Datenbankmanagement 1","2009-01-28",3],["Log1","Logik","2009-09-17",2],["Java2","Java-Fortsetzungskurs","2008-04-16",4]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Dozent gehalten hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer des Dozenten aus, der die meisten Kursdurchführungen gehalten hat!","display_sequence":"A","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"]]}},{"id":68,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Student besucht hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer der Studierenden aus, die die meisten Kursdurchführungen besucht haben!","display_sequence":"B","result":{"columns":["persnr","name","telefon"],"values":[["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"]]}},{"id":69,"description":"I. Erstelle eine Sicht, die den Kurscode, den Namen, die Dauer und die Anzahl der Kursdurchführung pro Kurs anzeigt! II. Gib dann die Kurscode, den Namen und die Dauer des Kurses mit den meisten Unterrichtseinheiten aus!","display_sequence":"C","result":{"columns":["kuerzel","name","kurstage"],"values":[["Java1","Java-Grundkurs",5]]}},{"id":70,"description":"I. Erstelle eine Sicht, die das Modulkürzel, den Namen, die Anzahl Kurstage sowie die Anzahl der Kursdurchführungen pro Modul anzeigt! II. Gib dann den Namen und die Kapazität des Raums aus, in dem die meisten Kursdurchführungen stattgefunden haben!","display_sequence":"D","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Erstelle eine Sicht, die den Kurscode, den Kursnamen und das Startdatum sowie die Teilnehmerzahl pro Kursdurchführung anzeigt! II. Gib dann den Kurscode, den Kursnamen und das Startdatum des Kurstermins mit den meisten Teilnehmern aus!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum"],"values":[["Java1","Java-Grundkurs","2008-03-06"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an mindestens drei VERSCHIEDENEN Modulen teilgenommen haben!","display_sequence":"A","result":{"columns":["persnr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":73,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die mindestens drei VERSCHIEDENE Module gehalten haben!","display_sequence":"B","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":74,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die Kursdurchführungen in mindestens drei VERSCHIEDENEN Seminarräumen gehalten haben!","display_sequence":"C","result":{"columns":["persnr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0003","Jean Dupont","Zürich"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":75,"description":"Gib Namen und Kapazität der Seminarräume aus, die von mindestens drei VERSCHIEDENEN Dozenten verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Gib Namen und Kapazität der Seminarräume aus, die für Kursdurchführungen von mindestens drei VERSCHIEDENEN Modulen verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12]]}},{"id":77,"description":"Gib Code, Namen und Preis der Module aus, die in mindestens drei VERSCHIEDENEN Seminarräumen gehalten wurden!","display_sequence":"F","result":{"columns":["kuerzel","name","preis"],"values":[["Java1","Java-Grundkurs",6700],["LDBD","Logisches Datenbank-Design",6000]]}},{"id":78,"description":"Gib Code, Namen und Preis der Module aus, die von mindestens drei VERSCHIEDENEN Dozenten gehalten wurden!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["DBM1","Datenbankmanagement 1",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Gib Namen und Ort der Personen aus, die keine Dozenten sind!","display_sequence":"A","result":{"columns":["name","ort"],"values":[["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Andrea Huber","Rapperswil"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":80,"description":"Gib Namen und Ort der Studierenden aus, die an keiner Kursdurchführung mit Startdatum im Jahr 2010 teilgenommen haben!","display_sequence":"B","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Pascal Baumann","Basel"],["Jean Richter","Basel"],["Pascal Baumann","Basel"]]}},{"id":81,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Java1 nicht besucht haben!","display_sequence":"C","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Jean Richter","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":82,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Log1 nicht besucht haben!","display_sequence":"D","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Jean Richter","Basel"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die niemals eine Kursdurchführung für das Modul \"Java-Fortsetzungskurs\" gehalten haben!","display_sequence":"A","result":{"columns":["persnr","name","bueronr","telefon"],"values":[["111017-0001","Lukas Meier",634,"+41 76 123 45 67"],["111017-0003","Jean Dupont",603,"+41 78 345 67 89"],["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}},{"id":84,"description":"Gib Personennummer, Namen und Ort der Studierenden mit Nachteilsausgleich aus, die das Modul \"Logisches Datenbank-Design\" nicht besucht haben!","display_sequence":"B","result":{"columns":["persnr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":85,"description":"Gib Namen und Kapazität der Seminarräume aus, die niemals für eine Kursdurchführung des Moduls \"Logisches Datenbank-Design\" verwendet wurden!","display_sequence":"C","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Gib Namen und Kapazität des Seminarraumes aus, der niemals vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlplaetze"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die das Modul \"Physisches Datenbank-Design\" oder das Modul \"Logisches Datenbank-Design\" (oder beide) besucht haben!","display_sequence":"A","result":{"columns":["persnr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":88,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die an Kursdurchführungen im Seminarraum Orion oder im Seminarraum Jupiter (oder in beiden) teilgenommen haben!","display_sequence":"B","result":{"columns":["persnr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":89,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die das Modul \"Logik\" oder das Modul \"Datenbankmanagement 1\" (oder beide) gehalten haben!","display_sequence":"C","result":{"columns":["persnr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":90,"description":"Gib Namen und Kapazität der Seminarräume aus, die vom Dozenten Marco Rossi oder vom Dozenten Jean Dupont (oder von beiden) verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Gib Namen und Kapazität der Seminarräume aus, die für das Modul \"Logik\" oder für das Modul \"Java-Fortsetzungskurs\" (oder für beide) verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die sowohl das Modul \"Physisches Datenbank-Design\" als auch das Modul \"Logisches Datenbank-Design\" besucht haben!","display_sequence":"A","result":{"columns":["persnr","name","ort"],"values":[["121017-0008","Andrea Huber","Rapperswil"],["121017-0006","Daniel Rochat","Bern"]]}},{"id":93,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die an Kursdurchführungen sowohl im Seminarraum Orion als auch im Seminarraum Jupiter teilgenommen haben!","display_sequence":"B","result":{"columns":["persnr","name","telefon"],"values":[["121017-0005","Thomas Dubois","+41 77 012 34 56"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0002","Peter Müller","+41 78 789 01 23"]]}},{"id":94,"description":"Gib Personennummer, Namen und Büro der Dozierenden aus, die sowohl das Modul \"Logisches Datenbank-Design\" als auch das Modul \"Datenbankmanagement 1\" gehalten haben!","display_sequence":"C","result":{"columns":["persnr","name","bueronr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605]]}},{"id":95,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl vom Dozenten Sophie Keller als auch vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlplaetze"],"values":[["Orion",24],["Saturnus",24],["Jupiter",12]]}},{"id":96,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl für das Modul \"Logik\" als auch für das Modul \"Java-Grundkurs\" verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12]]}},{"id":97,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die Kursdurchführungen sowohl im Seminarraum Jupiter als auch im Seminarraum Sirius gehalten haben!","display_sequence":"F","result":{"columns":["persnr","name","bueronr","telefon"],"values":[["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die Kurse bei allen Lehrkräften aus Zürich besucht haben!","display_sequence":"A","result":{"columns":["persnr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":99,"description":"Gib Namen und Kapazität der Seminarräume aus, die von sämtlichen Dozenten aus Zürich verwendet wurden!","display_sequence":"B","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12]]}},{"id":100,"description":"Gib Namen und Kapazität der Seminarräume aus, die für sämtliche Module verwendet wurden, die weniger als CHF 5000 kosten!","display_sequence":"C","result":{"columns":["name","anzahlplaetze"],"values":[["Jupiter",12]]}},{"id":101,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die Kursdurchführungen sämtlicher Module mit höchstens drei Kurstagen Dauer gehalten haben!","display_sequence":"D","result":{"columns":["persnr","name","telefon"],"values":[["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Gib für jede Kursdurchführung die Anzahl der Studierenden aus Bern aus! Zeige Modulkürzel, Startdatum und Anzahl der Studierenden. Auch Kursdurchführungen ohne Studierende aus Bern sollen im Ergebnis enthalten sein (mit 0 in der Anzahlspalte)!","display_sequence":"A","result":{"columns":["modulkuerzel","startdatum","count"],"values":[["Java1","2008-03-06",0],["LDBD","2010-09-24",0],["PDBD","2008-05-09",1],["LDBD","2008-09-02",1],["Java1","2008-05-06",2],["Log1","2009-09-17",1],["Java2","2010-04-11",2],["DBM1","2008-04-02",1],["Java2","2008-04-16",3],["LDBD","2008-05-06",1],["Log1","2010-05-01",0],["Java1","2010-05-01",2],["DBM1","2010-09-22",1],["DBM1","2009-01-28",0],["Java2","2009-01-22",1],["Java1","2011-05-01",0],["Log1","2008-04-16",1],["Java1","2008-09-02",0],["DBM1","2010-02-15",1]]}},{"id":103,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Logisches Datenbank-Design\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"B","result":{"columns":["persnr","name","ort","count"],"values":[["121017-0006","Daniel Rochat","Bern",1],["121017-0003","Claire Steiner","Winterthur",0],["121117-0041","Pascal Conti","Zürich",1],["131017-0053","Marco Schmid","Luzern",0],["121017-0004","Giulia Brunner","Bern",0],["131017-0051","Pascal Baumann","Basel",0],["121017-0002","Peter Müller","Bern",0],["121017-0001","Marco Schmid","Winterthur",1],["121017-0008","Andrea Huber","Rapperswil",2],["121018-0040","Chiara Weber","Zürich",1],["121017-0009","Pascal Baumann","Basel",0],["121017-0010","Isabelle Haller","Luzern",0],["121017-0005","Thomas Dubois","Basel",0],["131017-0052","Thomas Dubois","Basel",0],["111017-0001","Lukas Meier","Lugano",0],["121017-0007","Monika Frei","Bern",1],["131017-0050","Jean Richter","Basel",1]]}},{"id":104,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Java-Grundkurs\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"C","result":{"columns":["persnr","name","ort","count"],"values":[["121017-0006","Daniel Rochat","Bern",2],["121017-0003","Claire Steiner","Winterthur",1],["121117-0041","Pascal Conti","Zürich",0],["131017-0053","Marco Schmid","Luzern",0],["121017-0004","Giulia Brunner","Bern",0],["131017-0051","Pascal Baumann","Basel",1],["121017-0002","Peter Müller","Bern",1],["121017-0001","Marco Schmid","Winterthur",2],["121017-0008","Andrea Huber","Rapperswil",2],["121018-0040","Chiara Weber","Zürich",0],["121017-0009","Pascal Baumann","Basel",2],["121017-0010","Isabelle Haller","Luzern",1],["121017-0005","Thomas Dubois","Basel",0],["131017-0052","Thomas Dubois","Basel",0],["111017-0001","Lukas Meier","Lugano",0],["121017-0007","Monika Frei","Bern",1],["131017-0050","Jean Richter","Basel",0]]}},{"id":105,"description":"Gib die Anzahl der Male aus, die jeder Dozent das Modul \"Java-Grundkurs\" gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahll!","display_sequence":"D","result":{"columns":["persnr","name","telefon","bueronr","count"],"values":[["131017-0050","Jean Richter","+41 77 890 12 33",558,0],["111017-0003","Jean Dupont","+41 78 345 67 89",603,2],["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,3],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["111017-0004","Sophie Keller","+41 79 456 78 90",605,0]]}},{"id":106,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent mit Start im Jahr 2010 gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahl!","display_sequence":"E","result":{"columns":["persnr","name","telefon","bueronr","count"],"values":[["131017-0050","Jean Richter","+41 77 890 12 33",558,2],["111017-0003","Jean Dupont","+41 78 345 67 89",603,1],["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,1],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["111017-0004","Sophie Keller","+41 79 456 78 90",605,2]]}},{"id":107,"description":"Gib für jeden Student die Anzahl der Kursdurchführungen mit Start im Jahr 2008 aus! Zeige die Personennummer, den Namen, die Telefonnummer und den Ort des Studierenden sowie die Anzahl!","display_sequence":"F","result":{"columns":["persnr","name","telefon","ort","count"],"values":[["121017-0006","Daniel Rochat","+41 78 123 45 67","Bern",4],["121017-0003","Claire Steiner","+41 79 890 12 34","Winterthur",3],["121117-0041","Pascal Conti","+41 76 789 01 23","Zürich",0],["131017-0053","Marco Schmid","+41 78 250 28 55","Luzern",0],["121017-0004","Giulia Brunner","+41 76 901 23 45","Bern",1],["131017-0051","Pascal Baumann","+41 78 901 23 45","Basel",1],["121017-0002","Peter Müller","+41 78 789 01 23","Bern",3],["121017-0001","Marco Schmid","+41 77 678 90 12","Winterthur",4],["121017-0008","Andrea Huber","+41 76 345 67 89","Rapperswil",3],["121018-0040","Chiara Weber","+41 79 678 90 12","Zürich",0],["121017-0009","Pascal Baumann","+41 77 456 78 90","Basel",2],["121017-0010","Isabelle Haller","+41 78 567 89 01","Luzern",2],["121017-0005","Thomas Dubois","+41 77 012 34 56","Basel",2],["131017-0052","Thomas Dubois","+41 79 012 34 56","Basel",0],["111017-0001","Lukas Meier","+41 76 123 45 67","Lugano",0],["121017-0007","Monika Frei","+41 79 234 56 78","Bern",2],["131017-0050","Jean Richter","+41 77 890 12 33","Basel",1]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Basel teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"A","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-05-06","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2008-05-06","Sirius","Anna Bianchi"],["PDBD","Physisches Datenbank-Design","2008-05-09","Jupiter","Sophie Keller"],["Log1","Logik","2009-09-17","Jupiter","Anna Bianchi"],["DBM1","Datenbankmanagement 1","2010-02-15","Sirius","Sophie Keller"],["Java1","Java-Grundkurs","2010-05-01","Saturnus","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2010-09-24","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01","Saturnus","Marco Rossi"]]}},{"id":109,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Bern teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"B","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Java1","Java-Grundkurs","2008-03-06","Tellus","Marco Rossi"],["Java1","Java-Grundkurs","2008-09-02","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2010-09-24","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01","Saturnus","Marco Rossi"]]}},{"id":110,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student mit Nachteilsausgleich teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"C","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Log1","Logik","2008-04-16","Jupiter","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2008-05-06","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-09-02","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01","Jupiter","Marco Rossi"],["Java1","Java-Grundkurs","2011-05-01","Saturnus","Marco Rossi"]]}}]}]} \ No newline at end of file diff --git a/public/languages/de/questionpool.json b/public/languages/de/questionpool.json index fa602a2..776e63b 100644 --- a/public/languages/de/questionpool.json +++ b/public/languages/de/questionpool.json @@ -1 +1 @@ -{"language":"de","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Basel wohnen!","display_sequence":"A","result":{"columns":["persNr","name","strasse","plz"],"values":[["121017-0005","Thomas Dubois","Birkenweg 3","4051"],["121017-0009","Pascal Baumann","Auenweg 5","4051"],["131017-0050","Jean Richter","Abendrain 4","4051"],["131017-0051","Pascal Baumann","Birkenweg 12","4051"],["131017-0052","Thomas Dubois","Birkenweg 1","4051"]]}},{"id":2,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":3,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Bern wohnen!","display_sequence":"C","result":{"columns":["persNr","name","strasse","plz"],"values":[["121017-0002","Peter Müller","Alte Landstrasse 3","3006"],["121017-0004","Giulia Brunner","Schulstrasse 1","3004"],["121017-0006","Daniel Rochat","Eichtalstrasse 2","3007"],["121017-0007","Monika Frei","Eichtalstrasse 24","3006"]]}},{"id":4,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":5,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","telefon"],"values":[["Thomas Dubois","Birkenweg 3","4051","+41 77 012 34 56"],["Pascal Baumann","Auenweg 5","4051","+41 77 456 78 90"],["Jean Richter","Abendrain 4","4051","+41 77 890 12 33"],["Pascal Baumann","Birkenweg 12","4051","+41 78 901 23 45"],["Thomas Dubois","Birkenweg 1","4051","+41 79 012 34 56"]]}},{"id":6,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","telefon"],"values":[["Peter Müller","Alte Landstrasse 3","3006","+41 78 789 01 23"],["Giulia Brunner","Schulstrasse 1","3004","+41 76 901 23 45"],["Daniel Rochat","Eichtalstrasse 2","3007","+41 78 123 45 67"],["Monika Frei","Eichtalstrasse 24","3006","+41 79 234 56 78"]]}},{"id":7,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 Kurstagen aus!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 4 Kurstage aus!","display_sequence":"H","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0009","Pascal Baumann","Basel"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":10,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel oder in Winterthur wohnen!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":11,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Luzern wohnen!","display_sequence":"C","result":{"columns":["persNr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":12,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern oder in Winterthur wohnen!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":13,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","ort"],"values":[["Sophie Keller","Dorfstrasse 4","6003","Luzern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"],["Marco Schmid","Dorfstrasse 63","6001","Luzern"]]}},{"id":14,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":15,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Luzern oder in Winterthur wohnen!","display_sequence":"G","result":{"columns":["persNr","name","telefon"],"values":[["111017-0004","Sophie Keller","+41 79 456 78 90"],["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":16,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"H","result":{"columns":["persNr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0005","Thomas Dubois","Basel"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":17,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Zürich oder in Luzern wohnen!","display_sequence":"I","result":{"columns":["persNr","name","telefon"],"values":[["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":18,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Zürich wohnen!","display_sequence":"J","result":{"columns":["name","strasse","plz","ort"],"values":[["Jean Dupont","Bahnhofplatz 3","8001","Zürich"],["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":19,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 oder 4 Kurstagen aus!","display_sequence":"K","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["dozentNr"],"values":[["111017-0003"],["111017-0002"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["dozentNr"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":23,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["dozentNr"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["dozentNr"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":26,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"]]}},{"id":27,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java1 teilgenommen haben!","display_sequence":"H","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0002"],["121017-0006"],["121017-0007"]]}},{"id":28,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel DBM1 teilgenommen haben!","display_sequence":"I","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0005"],["131017-0051"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}},{"id":29,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java2 teilgenommen haben!","display_sequence":"J","result":{"columns":["studNr"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"]]}},{"id":30,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel LDBD teilgenommen haben!","display_sequence":"K","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0007"],["121017-0006"],["121017-0008"],["131017-0050"],["121018-0040"],["121117-0041"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":32,"description":"Gib die Personennummer, den Namen und die Büronummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":33,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persNr","name","strasse","plz"],"values":[["111017-0005","Anna Bianchi","Zollstrasse 5","8044"],["111017-0004","Sophie Keller","Dorfstrasse 4","6003"],["131017-0050","Jean Richter","Abendrain 4","4051"]]}},{"id":34,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"]]}},{"id":35,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["131017-0050","Jean Richter","Basel"]]}},{"id":36,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Sophie Keller","Dorfstrasse 4","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"]]}},{"id":37,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persNr","name","telefon"],"values":[["111017-0005","Anna Bianchi","+41 76 567 89 01"],["111017-0004","Sophie Keller","+41 79 456 78 90"]]}},{"id":38,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"H","result":{"columns":["persNr","name","ort"],"values":[["111017-0003","Jean Dupont","Zürich"],["111017-0002","Marco Rossi","St. Gallen"],["111017-0004","Sophie Keller","Luzern"],["111017-0005","Anna Bianchi","Zürich"]]}},{"id":39,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"I","result":{"columns":["persNr","name","strasse","plz"],"values":[["111017-0002","Marco Rossi","Marktgasse 2","9000"],["111017-0004","Sophie Keller","Dorfstrasse 4","6003"]]}},{"id":40,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"J","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":41,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"K","result":{"columns":["persNr","name","ort"],"values":[["111017-0005","Anna Bianchi","Zürich"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":42,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"L","result":{"columns":["name","strasse","plz","ort"],"values":[["Marco Rossi","Marktgasse 2","9000","St. Gallen"],["Jean Dupont","Bahnhofplatz 3","8001","Zürich"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0003","Jean Dupont",603],["111017-0002","Marco Rossi",604],["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}},{"id":44,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["111017-0004","Sophie Keller",605]]}},{"id":45,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605],["131017-0050","Jean Richter",558]]}},{"id":46,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["111017-0003","Jean Dupont",603]]}},{"id":47,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["131017-0050","Jean Richter",558]]}},{"id":48,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605],["131017-0050","Jean Richter",558]]}},{"id":49,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["studNr"],"values":[["121017-0004"],["121017-0005"],["121017-0002"],["121017-0006"],["121017-0003"],["121017-0008"],["131017-0051"],["121117-0041"],["121018-0040"],["131017-0053"]]}},{"id":51,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["studNr"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["131017-0050"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":52,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"],["121017-0005"],["121017-0007"]]}},{"id":53,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0007"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":55,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["131017-0050","Jean Richter","Basel"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":56,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":57,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["persNr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0010","Isabelle Haller","Luzern"],["121017-0007","Monika Frei","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0004","Giulia Brunner","Bern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":58,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"E","result":{"columns":["name","strasse","ort","telefon"],"values":[["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"],["Peter Müller","Alte Landstrasse 3","Bern","+41 78 789 01 23"],["Daniel Rochat","Eichtalstrasse 2","Bern","+41 78 123 45 67"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Pascal Conti","Rosengartenstrasse 15b","Zürich","+41 76 789 01 23"],["Chiara Weber","Industriestrasse 44","Zürich","+41 79 678 90 12"],["Marco Schmid","Dorfstrasse 63","Luzern","+41 78 250 28 55"]]}},{"id":59,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Andrea Huber","St. Jakobstrasse 112","8640","Rapperswil"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Pascal Baumann","Birkenweg 12","4051","Basel"]]}},{"id":60,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"G","result":{"columns":["name","strasse","ort","telefon"],"values":[["Marco Schmid","Burgstrasse 6","Winterthur","+41 77 678 90 12"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Pascal Baumann","Auenweg 5","Basel","+41 77 456 78 90"],["Isabelle Haller","Lillgatan 3","Luzern","+41 78 567 89 01"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"],["Monika Frei","Eichtalstrasse 24","Bern","+41 79 234 56 78"]]}},{"id":61,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"H","result":{"columns":["name","strasse","plz","ort"],"values":[["Marco Schmid","Burgstrasse 6","8401","Winterthur"],["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Claire Steiner","Kirchgasse 4","8404","Winterthur"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Gib die Anzahl der Kursdurchführungen aus, an denen jeder Student teilgenommen hat! Zeige die Personennummer des Studierenden, den Namen des Studierenden und die Anzahl!","display_sequence":"A","result":{"columns":["persNr","name","anzahl"],"values":[["111017-0001","Lukas Meier",0],["121017-0001","Marco Schmid",4],["121017-0002","Peter Müller",4],["121017-0003","Claire Steiner",5],["121017-0004","Giulia Brunner",4],["121017-0005","Thomas Dubois",5],["121017-0006","Daniel Rochat",6],["121017-0007","Monika Frei",4],["121017-0008","Andrea Huber",6],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121018-0040","Chiara Weber",3],["121117-0041","Pascal Conti",3],["131017-0050","Jean Richter",1],["131017-0051","Pascal Baumann",3],["131017-0052","Thomas Dubois",1],["131017-0053","Marco Schmid",1]]},"alternative_results":[{"columns":["persNr","name","anzahl"],"values":[["121017-0001","Marco Schmid",4],["121017-0002","Peter Müller",4],["121017-0003","Claire Steiner",5],["121017-0004","Giulia Brunner",4],["121017-0005","Thomas Dubois",5],["121017-0006","Daniel Rochat",6],["121017-0007","Monika Frei",4],["121017-0008","Andrea Huber",6],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121018-0040","Chiara Weber",3],["121117-0041","Pascal Conti",3],["131017-0050","Jean Richter",1],["131017-0051","Pascal Baumann",3],["131017-0052","Thomas Dubois",1],["131017-0053","Marco Schmid",1]]}]},{"id":63,"description":"Gib die Anzahl der Kursdurchführungen aus, für die jeder Seminarraum verwendet wurde! Zeige den Namen des Seminarraums, die Kapazität des Seminarraums und die Anzahl!","display_sequence":"B","result":{"columns":["name","anzahlPlaetze","anzahl"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]},"alternative_results":[{"columns":["name","anzahlPlaetze","anzahl"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]}]},{"id":64,"description":"Gib die Anzahl der Kursdurchführungen aus, die jedes Modul hatte! Zeige das Kürzel des Moduls, den Namen des Moduls und die Anzahl!","display_sequence":"C","result":{"columns":["kuerzel","name","anzahl"],"values":[["DBM1","Datenbankmanagement 1",4],["Java1","Java-Grundkurs",5],["Java2","Java-Fortsetzungskurs",3],["LDBD","Logisches Datenbank-Design",3],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1]]},"alternative_results":[{"columns":["kuerzel","name","anzahl"],"values":[["DBM1","Datenbankmanagement 1",4],["Java1","Java-Grundkurs",5],["Java2","Java-Fortsetzungskurs",3],["LDBD","Logisches Datenbank-Design",3],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1]]}]},{"id":65,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent gehalten hat! Zeige die Personennummer des Dozenten, den Namen des Dozenten und die Anzahl!","display_sequence":"D","result":{"columns":["persNr","name","anzahl"],"values":[["111017-0001","Lukas Meier",0],["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["111017-0005","Anna Bianchi",4],["131017-0050","Jean Richter",2]]},"alternative_results":[{"columns":["persNr","name","anzahl"],"values":[["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["111017-0005","Anna Bianchi",4],["131017-0050","Jean Richter",2]]}]},{"id":66,"description":"Gib die Anzahl der teilnehmenden Studierenden für jede Kursdurchführung aus! Zeige Modulkürzel und Modulname der Kursdurchführung, Startdatum der Kursdurchführung und die Anzahl!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum","anzahl"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z",4],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-09-22T00:00:00.000Z",4],["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z",3],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z",0],["Java2","Java-Fortsetzungskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z",2],["LDBD","Logisches Datenbank-Design","2008-09-02T00:00:00.000Z",3],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z",3]]},"alternative_results":[{"columns":["modulkuerzel","name","startdatum","anzahl"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z",4],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-09-22T00:00:00.000Z",4],["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z",3],["Java2","Java-Fortsetzungskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z",2],["LDBD","Logisches Datenbank-Design","2008-09-02T00:00:00.000Z",3],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Dozent gehalten hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer des Dozenten aus, der die meisten Kursdurchführungen gehalten hat!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"]]}},{"id":68,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Student besucht hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer der Studierenden aus, die die meisten Kursdurchführungen besucht haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"]]}},{"id":69,"description":"I. Erstelle eine Sicht, die den Kurscode, den Namen, die Dauer und die Anzahl der Kursdurchführung pro Kurs anzeigt! II. Gib dann die Kurscode, den Namen und die Dauer des Kurses mit den meisten Unterrichtseinheiten aus!","display_sequence":"C","result":{"columns":["kuerzel","name","kurstage"],"values":[["Java1","Java-Grundkurs",5]]}},{"id":70,"description":"I. Erstelle eine Sicht, die das Modulkürzel, den Namen, die Anzahl Kurstage sowie die Anzahl der Kursdurchführungen pro Modul anzeigt! II. Gib dann den Namen und die Kapazität des Raums aus, in dem die meisten Kursdurchführungen stattgefunden haben!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Erstelle eine Sicht, die den Kurscode, den Kursnamen und das Startdatum sowie die Teilnehmerzahl pro Kursdurchführung anzeigt! II. Gib dann den Kurscode, den Kursnamen und das Startdatum des Kurstermins mit den meisten Teilnehmern aus!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum"],"values":[["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an mindestens drei VERSCHIEDENEN Modulen teilgenommen haben!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":73,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die mindestens drei VERSCHIEDENE Module gehalten haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":74,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die Kursdurchführungen in mindestens drei VERSCHIEDENEN Seminarräumen gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0003","Jean Dupont","Zürich"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":75,"description":"Gib Namen und Kapazität der Seminarräume aus, die von mindestens drei VERSCHIEDENEN Dozenten verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Gib Namen und Kapazität der Seminarräume aus, die für Kursdurchführungen von mindestens drei VERSCHIEDENEN Modulen verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":77,"description":"Gib Code, Namen und Preis der Module aus, die in mindestens drei VERSCHIEDENEN Seminarräumen gehalten wurden!","display_sequence":"F","result":{"columns":["kuerzel","name","preis"],"values":[["Java1","Java-Grundkurs",6700],["LDBD","Logisches Datenbank-Design",6000]]}},{"id":78,"description":"Gib Code, Namen und Preis der Module aus, die von mindestens drei VERSCHIEDENEN Dozenten gehalten wurden!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["DBM1","Datenbankmanagement 1",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Gib Namen und Ort der Personen aus, die keine Dozenten sind!","display_sequence":"A","result":{"columns":["name","ort"],"values":[["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Andrea Huber","Rapperswil"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":80,"description":"Gib Namen und Ort der Studierenden aus, die an keiner Kursdurchführung mit Startdatum im Jahr 2010 teilgenommen haben!","display_sequence":"B","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Pascal Baumann","Basel"],["Jean Richter","Basel"],["Pascal Baumann","Basel"]]}},{"id":81,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Java1 nicht besucht haben!","display_sequence":"C","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Jean Richter","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":82,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Log1 nicht besucht haben!","display_sequence":"D","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Jean Richter","Basel"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die niemals eine Kursdurchführung für das Modul \"Java-Fortsetzungskurs\" gehalten haben!","display_sequence":"A","result":{"columns":["persNr","name","bueroNr","telefon"],"values":[["111017-0001","Lukas Meier",634,"+41 76 123 45 67"],["111017-0003","Jean Dupont",603,"+41 78 345 67 89"],["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}},{"id":84,"description":"Gib Personennummer, Namen und Ort der Studierenden mit Nachteilsausgleich aus, die das Modul \"Logisches Datenbank-Design\" nicht besucht haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":85,"description":"Gib Namen und Kapazität der Seminarräume aus, die niemals für eine Kursdurchführung des Moduls \"Logisches Datenbank-Design\" verwendet wurden!","display_sequence":"C","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Gib Namen und Kapazität des Seminarraumes aus, der niemals vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die das Modul \"Physisches Datenbank-Design\" oder das Modul \"Logisches Datenbank-Design\" (oder beide) besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":88,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die an Kursdurchführungen im Seminarraum Orion oder im Seminarraum Jupiter (oder in beiden) teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":89,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die das Modul \"Logik\" oder das Modul \"Datenbankmanagement 1\" (oder beide) gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":90,"description":"Gib Namen und Kapazität der Seminarräume aus, die vom Dozenten Marco Rossi oder vom Dozenten Jean Dupont (oder von beiden) verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Gib Namen und Kapazität der Seminarräume aus, die für das Modul \"Logik\" oder für das Modul \"Java-Fortsetzungskurs\" (oder für beide) verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die sowohl das Modul \"Physisches Datenbank-Design\" als auch das Modul \"Logisches Datenbank-Design\" besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0006","Daniel Rochat","Bern"],["121017-0008","Andrea Huber","Rapperswil"]]}},{"id":93,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die an Kursdurchführungen sowohl im Seminarraum Orion als auch im Seminarraum Jupiter teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["131017-0051","Pascal Baumann","+41 78 901 23 45"]]}},{"id":94,"description":"Gib Personennummer, Namen und Büro der Dozierenden aus, die sowohl das Modul \"Logisches Datenbank-Design\" als auch das Modul \"Datenbankmanagement 1\" gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}},{"id":95,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl vom Dozenten Sophie Keller als auch vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24]]}},{"id":96,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl für das Modul \"Logik\" als auch für das Modul \"Java-Grundkurs\" verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":97,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die Kursdurchführungen sowohl im Seminarraum Jupiter als auch im Seminarraum Sirius gehalten haben!","display_sequence":"F","result":{"columns":["persNr","name","bueroNr","telefon"],"values":[["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die Kurse bei allen Lehrkräften aus Zürich besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0004","Giulia Brunner","+41 76 901 23 45"]]}},{"id":99,"description":"Gib Namen und Kapazität der Seminarräume aus, die von sämtlichen Dozenten aus Zürich verwendet wurden!","display_sequence":"B","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":100,"description":"Gib Namen und Kapazität der Seminarräume aus, die für sämtliche Module verwendet wurden, die weniger als CHF 5000 kosten!","display_sequence":"C","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":101,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die Kursdurchführungen sämtlicher Module mit höchstens drei Kurstagen Dauer gehalten haben!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Gib für jede Kursdurchführung die Anzahl der Studierenden aus Bern aus! Zeige Modulkürzel, Startdatum und Anzahl der Studierenden. Auch Kursdurchführungen ohne Studierende aus Bern sollen im Ergebnis enthalten sein (mit 0 in der Anzahlspalte)!","display_sequence":"A","result":{"columns":["modulkuerzel","startdatum","anzahl"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDBD","2008-05-06T00:00:00.000Z",1],["LDBD","2008-09-02T00:00:00.000Z",1],["LDBD","2010-09-24T00:00:00.000Z",0],["Log1","2008-04-16T00:00:00.000Z",1],["Log1","2009-09-17T00:00:00.000Z",1],["Log1","2010-05-01T00:00:00.000Z",0],["PDBD","2008-05-09T00:00:00.000Z",1]]}},{"id":103,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Logisches Datenbank-Design\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"B","result":{"columns":["persNr","name","ort","anzahl"],"values":[["111017-0001","Lukas Meier","Lugano",0],["121017-0001","Marco Schmid","Winterthur",1],["121017-0002","Peter Müller","Bern",0],["121017-0003","Claire Steiner","Winterthur",0],["121017-0004","Giulia Brunner","Bern",0],["121017-0005","Thomas Dubois","Basel",0],["121017-0006","Daniel Rochat","Bern",1],["121017-0007","Monika Frei","Bern",1],["121017-0008","Andrea Huber","Rapperswil",2],["121017-0009","Pascal Baumann","Basel",0],["121017-0010","Isabelle Haller","Luzern",0],["121018-0040","Chiara Weber","Zürich",1],["121117-0041","Pascal Conti","Zürich",1],["131017-0050","Jean Richter","Basel",1],["131017-0051","Pascal Baumann","Basel",0],["131017-0052","Thomas Dubois","Basel",0],["131017-0053","Marco Schmid","Luzern",0]]}},{"id":104,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Java-Grundkurs\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"C","result":{"columns":["persNr","name","ort","anzahl"],"values":[["111017-0001","Lukas Meier","Lugano",0],["121017-0001","Marco Schmid","Winterthur",2],["121017-0002","Peter Müller","Bern",1],["121017-0003","Claire Steiner","Winterthur",1],["121017-0004","Giulia Brunner","Bern",0],["121017-0005","Thomas Dubois","Basel",0],["121017-0006","Daniel Rochat","Bern",2],["121017-0007","Monika Frei","Bern",1],["121017-0008","Andrea Huber","Rapperswil",2],["121017-0009","Pascal Baumann","Basel",2],["121017-0010","Isabelle Haller","Luzern",1],["121018-0040","Chiara Weber","Zürich",0],["121117-0041","Pascal Conti","Zürich",0],["131017-0050","Jean Richter","Basel",0],["131017-0051","Pascal Baumann","Basel",1],["131017-0052","Thomas Dubois","Basel",0],["131017-0053","Marco Schmid","Luzern",0]]}},{"id":105,"description":"Gib die Anzahl der Male aus, die jeder Dozent das Modul \"Java-Grundkurs\" gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahll!","display_sequence":"D","result":{"columns":["persNr","name","telefon","bueroNr","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,3],["111017-0003","Jean Dupont","+41 78 345 67 89",603,2],["111017-0004","Sophie Keller","+41 79 456 78 90",605,0],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["131017-0050","Jean Richter","+41 77 890 12 33",558,0]]}},{"id":106,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent mit Start im Jahr 2010 gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahl!","display_sequence":"E","result":{"columns":["persNr","name","telefon","bueroNr","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,1],["111017-0003","Jean Dupont","+41 78 345 67 89",603,1],["111017-0004","Sophie Keller","+41 79 456 78 90",605,2],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["131017-0050","Jean Richter","+41 77 890 12 33",558,2]]}},{"id":107,"description":"Gib für jeden Student die Anzahl der Kursdurchführungen mit Start im Jahr 2008 aus! Zeige die Personennummer, den Namen, die Telefonnummer und den Ort des Studierenden sowie die Anzahl!","display_sequence":"F","result":{"columns":["persNr","name","telefon","ort","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67","Lugano",0],["121017-0001","Marco Schmid","+41 77 678 90 12","Winterthur",4],["121017-0002","Peter Müller","+41 78 789 01 23","Bern",3],["121017-0003","Claire Steiner","+41 79 890 12 34","Winterthur",3],["121017-0004","Giulia Brunner","+41 76 901 23 45","Bern",1],["121017-0005","Thomas Dubois","+41 77 012 34 56","Basel",2],["121017-0006","Daniel Rochat","+41 78 123 45 67","Bern",4],["121017-0007","Monika Frei","+41 79 234 56 78","Bern",2],["121017-0008","Andrea Huber","+41 76 345 67 89","Rapperswil",3],["121017-0009","Pascal Baumann","+41 77 456 78 90","Basel",2],["121017-0010","Isabelle Haller","+41 78 567 89 01","Luzern",2],["121018-0040","Chiara Weber","+41 79 678 90 12","Zürich",0],["121117-0041","Pascal Conti","+41 76 789 01 23","Zürich",0],["131017-0050","Jean Richter","+41 77 890 12 33","Basel",1],["131017-0051","Pascal Baumann","+41 78 901 23 45","Basel",1],["131017-0052","Thomas Dubois","+41 79 012 34 56","Basel",0],["131017-0053","Marco Schmid","+41 78 250 28 55","Luzern",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Basel teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"A","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z","Sirius","Anna Bianchi"],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z","Jupiter","Sophie Keller"],["Log1","Logik","2009-09-17T00:00:00.000Z","Jupiter","Anna Bianchi"],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z","Sirius","Sophie Keller"],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z","Saturnus","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}},{"id":109,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Bern teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"B","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z","Tellus","Marco Rossi"],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}},{"id":110,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student mit Nachteilsausgleich teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"C","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Log1","Logik","2008-04-16T00:00:00.000Z","Jupiter","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Marco Rossi"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}}]}]} \ No newline at end of file +{"language":"de","engine":"sqlite","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Basel wohnen!","display_sequence":"A","result":{"columns":["persNr","name","strasse","plz"],"values":[["121017-0005","Thomas Dubois","Birkenweg 3","4051"],["121017-0009","Pascal Baumann","Auenweg 5","4051"],["131017-0050","Jean Richter","Abendrain 4","4051"],["131017-0051","Pascal Baumann","Birkenweg 12","4051"],["131017-0052","Thomas Dubois","Birkenweg 1","4051"]]}},{"id":2,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":3,"description":"Gib die Personennummer, den Namen, die Strasse und die Postleitzahl der Personen aus, die in Bern wohnen!","display_sequence":"C","result":{"columns":["persNr","name","strasse","plz"],"values":[["121017-0002","Peter Müller","Alte Landstrasse 3","3006"],["121017-0004","Giulia Brunner","Schulstrasse 1","3004"],["121017-0006","Daniel Rochat","Eichtalstrasse 2","3007"],["121017-0007","Monika Frei","Eichtalstrasse 24","3006"]]}},{"id":4,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":5,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Basel wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","telefon"],"values":[["Thomas Dubois","Birkenweg 3","4051","+41 77 012 34 56"],["Pascal Baumann","Auenweg 5","4051","+41 77 456 78 90"],["Jean Richter","Abendrain 4","4051","+41 77 890 12 33"],["Pascal Baumann","Birkenweg 12","4051","+41 78 901 23 45"],["Thomas Dubois","Birkenweg 1","4051","+41 79 012 34 56"]]}},{"id":6,"description":"Gib den Namen, die Strasse, die Postleitzahl und die Telefonnummer der Personen aus, die in Bern wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","telefon"],"values":[["Peter Müller","Alte Landstrasse 3","3006","+41 78 789 01 23"],["Giulia Brunner","Schulstrasse 1","3004","+41 76 901 23 45"],["Daniel Rochat","Eichtalstrasse 2","3007","+41 78 123 45 67"],["Monika Frei","Eichtalstrasse 24","3006","+41 79 234 56 78"]]}},{"id":7,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 Kurstagen aus!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 4 Kurstage aus!","display_sequence":"H","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0009","Pascal Baumann","Basel"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":10,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Basel oder in Winterthur wohnen!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["131017-0050","Jean Richter","+41 77 890 12 33"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["131017-0052","Thomas Dubois","+41 79 012 34 56"]]}},{"id":11,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Bern oder in Luzern wohnen!","display_sequence":"C","result":{"columns":["persNr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0002","Peter Müller","Bern"],["121017-0004","Giulia Brunner","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":12,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Bern oder in Winterthur wohnen!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":13,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"E","result":{"columns":["name","strasse","plz","ort"],"values":[["Sophie Keller","Dorfstrasse 4","6003","Luzern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"],["Marco Schmid","Dorfstrasse 63","6001","Luzern"]]}},{"id":14,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Bern oder in Basel wohnen!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":15,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Luzern oder in Winterthur wohnen!","display_sequence":"G","result":{"columns":["persNr","name","telefon"],"values":[["111017-0004","Sophie Keller","+41 79 456 78 90"],["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":16,"description":"Gib die Personennummer, den Namen und den Ort der Personen aus, die in Basel oder in Luzern wohnen!","display_sequence":"H","result":{"columns":["persNr","name","ort"],"values":[["111017-0004","Sophie Keller","Luzern"],["121017-0005","Thomas Dubois","Basel"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0052","Thomas Dubois","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":17,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Personen aus, die in Zürich oder in Luzern wohnen!","display_sequence":"I","result":{"columns":["persNr","name","telefon"],"values":[["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":18,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Personen aus, die in Basel oder in Zürich wohnen!","display_sequence":"J","result":{"columns":["name","strasse","plz","ort"],"values":[["Jean Dupont","Bahnhofplatz 3","8001","Zürich"],["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Birkenweg 12","4051","Basel"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}},{"id":19,"description":"Gib Modulkürzel, Namen und Preis der Module mit einer Dauer von 3 oder 4 Kurstagen aus!","display_sequence":"K","result":{"columns":["kuerzel","name","preis"],"values":[["Java2","Java-Fortsetzungskurs",6000],["LDBD","Logisches Datenbank-Design",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["dozentNr"],"values":[["111017-0003"],["111017-0002"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["dozentNr"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Gib die Personennummer der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":23,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["dozentNr"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["dozentNr"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":26,"description":"Gib die Personennummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["dozentNr"],"values":[["111017-0005"],["111017-0004"]]}},{"id":27,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java1 teilgenommen haben!","display_sequence":"H","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0002"],["121017-0006"],["121017-0007"]]}},{"id":28,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel DBM1 teilgenommen haben!","display_sequence":"I","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0005"],["131017-0051"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}},{"id":29,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel Java2 teilgenommen haben!","display_sequence":"J","result":{"columns":["studNr"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"]]}},{"id":30,"description":"Gib die Personennummer der Studierenden aus, die am Modul mit dem Kürzel LDBD teilgenommen haben!","display_sequence":"K","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0007"],["121017-0006"],["121017-0008"],["131017-0050"],["121018-0040"],["121117-0041"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":32,"description":"Gib die Personennummer, den Namen und die Büronummer der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":33,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persNr","name","strasse","plz"],"values":[["111017-0005","Anna Bianchi","Zollstrasse 5","8044"],["111017-0004","Sophie Keller","Dorfstrasse 4","6003"],["131017-0050","Jean Richter","Abendrain 4","4051"]]}},{"id":34,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"]]}},{"id":35,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["131017-0050","Jean Richter","Basel"]]}},{"id":36,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Anna Bianchi","Zollstrasse 5","8044","Zürich"],["Sophie Keller","Dorfstrasse 4","6003","Luzern"],["Jean Richter","Abendrain 4","4051","Basel"]]}},{"id":37,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persNr","name","telefon"],"values":[["111017-0005","Anna Bianchi","+41 76 567 89 01"],["111017-0004","Sophie Keller","+41 79 456 78 90"]]}},{"id":38,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"H","result":{"columns":["persNr","name","ort"],"values":[["111017-0003","Jean Dupont","Zürich"],["111017-0002","Marco Rossi","St. Gallen"],["111017-0004","Sophie Keller","Luzern"],["111017-0005","Anna Bianchi","Zürich"]]}},{"id":39,"description":"Gib die Personennummer, den Namen, Strasse und die Postleitzahl der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"I","result":{"columns":["persNr","name","strasse","plz"],"values":[["111017-0002","Marco Rossi","Marktgasse 2","9000"],["111017-0004","Sophie Keller","Dorfstrasse 4","6003"]]}},{"id":40,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"J","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":41,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"K","result":{"columns":["persNr","name","ort"],"values":[["111017-0005","Anna Bianchi","Zürich"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":42,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"L","result":{"columns":["name","strasse","plz","ort"],"values":[["Marco Rossi","Marktgasse 2","9000","St. Gallen"],["Jean Dupont","Bahnhofplatz 3","8001","Zürich"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 1 unterrichtet haben!","display_sequence":"A","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0003","Jean Dupont",603],["111017-0002","Marco Rossi",604],["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}},{"id":44,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 2 unterrichtet haben!","display_sequence":"B","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["111017-0004","Sophie Keller",605]]}},{"id":45,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die im Seminarraum mit der ID 3 unterrichtet haben!","display_sequence":"C","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605],["131017-0050","Jean Richter",558]]}},{"id":46,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java1 unterrichtet haben!","display_sequence":"D","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["111017-0003","Jean Dupont",603]]}},{"id":47,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel Java2 unterrichtet haben!","display_sequence":"E","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0002","Marco Rossi",604],["131017-0050","Jean Richter",558]]}},{"id":48,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel DBM1 unterrichtet haben!","display_sequence":"F","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605],["131017-0050","Jean Richter",558]]}},{"id":49,"description":"Gib die Personennummer, den Namen und das Büro der Dozierenden aus, die das Modul mit dem Kürzel LDBD unterrichtet haben!","display_sequence":"G","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0005","Anna Bianchi",622],["111017-0004","Sophie Keller",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["studNr"],"values":[["121017-0004"],["121017-0005"],["121017-0002"],["121017-0006"],["121017-0003"],["121017-0008"],["131017-0051"],["121117-0041"],["121018-0040"],["131017-0053"]]}},{"id":51,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["studNr"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["131017-0050"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":52,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"],["121017-0005"],["121017-0007"]]}},{"id":53,"description":"Gib die Personennummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["studNr"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0007"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["131017-0053","Marco Schmid","+41 78 250 28 55"]]}},{"id":55,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["131017-0050","Jean Richter","Basel"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":56,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"C","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121017-0009","Pascal Baumann","+41 77 456 78 90"],["121017-0010","Isabelle Haller","+41 78 567 89 01"],["131017-0051","Pascal Baumann","+41 78 901 23 45"],["121017-0004","Giulia Brunner","+41 76 901 23 45"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"]]}},{"id":57,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"D","result":{"columns":["persNr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0010","Isabelle Haller","Luzern"],["121017-0007","Monika Frei","Bern"],["121017-0006","Daniel Rochat","Bern"],["121017-0004","Giulia Brunner","Bern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":58,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Jupiter teilgenommen haben!","display_sequence":"E","result":{"columns":["name","strasse","ort","telefon"],"values":[["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"],["Peter Müller","Alte Landstrasse 3","Bern","+41 78 789 01 23"],["Daniel Rochat","Eichtalstrasse 2","Bern","+41 78 123 45 67"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Pascal Conti","Rosengartenstrasse 15b","Zürich","+41 76 789 01 23"],["Chiara Weber","Industriestrasse 44","Zürich","+41 79 678 90 12"],["Marco Schmid","Dorfstrasse 63","Luzern","+41 78 250 28 55"]]}},{"id":59,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Orion teilgenommen haben!","display_sequence":"F","result":{"columns":["name","strasse","plz","ort"],"values":[["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Thomas Dubois","Birkenweg 3","4051","Basel"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Andrea Huber","St. Jakobstrasse 112","8640","Rapperswil"],["Jean Richter","Abendrain 4","4051","Basel"],["Pascal Baumann","Auenweg 5","4051","Basel"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Pascal Baumann","Birkenweg 12","4051","Basel"]]}},{"id":60,"description":"Gib den Namen, Strasse, den Ort und die Telefonnummer der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Tellus teilgenommen haben!","display_sequence":"G","result":{"columns":["name","strasse","ort","telefon"],"values":[["Marco Schmid","Burgstrasse 6","Winterthur","+41 77 678 90 12"],["Claire Steiner","Kirchgasse 4","Winterthur","+41 79 890 12 34"],["Andrea Huber","St. Jakobstrasse 112","Rapperswil","+41 76 345 67 89"],["Pascal Baumann","Auenweg 5","Basel","+41 77 456 78 90"],["Isabelle Haller","Lillgatan 3","Luzern","+41 78 567 89 01"],["Pascal Baumann","Birkenweg 12","Basel","+41 78 901 23 45"],["Giulia Brunner","Schulstrasse 1","Bern","+41 76 901 23 45"],["Thomas Dubois","Birkenweg 3","Basel","+41 77 012 34 56"],["Monika Frei","Eichtalstrasse 24","Bern","+41 79 234 56 78"]]}},{"id":61,"description":"Gib den Namen, Strasse, die Postleitzahl und den Ort der Studierenden aus, die an irgendeiner Kursdurchführung im Seminaraum Sirius teilgenommen haben!","display_sequence":"H","result":{"columns":["name","strasse","plz","ort"],"values":[["Marco Schmid","Burgstrasse 6","8401","Winterthur"],["Peter Müller","Alte Landstrasse 3","3006","Bern"],["Claire Steiner","Kirchgasse 4","8404","Winterthur"],["Isabelle Haller","Lillgatan 3","6003","Luzern"],["Monika Frei","Eichtalstrasse 24","3006","Bern"],["Daniel Rochat","Eichtalstrasse 2","3007","Bern"],["Giulia Brunner","Schulstrasse 1","3004","Bern"],["Chiara Weber","Industriestrasse 44","8001","Zürich"],["Pascal Conti","Rosengartenstrasse 15b","8002","Zürich"],["Thomas Dubois","Birkenweg 1","4051","Basel"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Gib die Anzahl der Kursdurchführungen aus, an denen jeder Student teilgenommen hat! Zeige die Personennummer des Studierenden, den Namen des Studierenden und die Anzahl!","display_sequence":"A","result":{"columns":["persNr","name","anzahl"],"values":[["111017-0001","Lukas Meier",0],["121017-0001","Marco Schmid",4],["121017-0002","Peter Müller",4],["121017-0003","Claire Steiner",5],["121017-0004","Giulia Brunner",4],["121017-0005","Thomas Dubois",5],["121017-0006","Daniel Rochat",6],["121017-0007","Monika Frei",4],["121017-0008","Andrea Huber",6],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121018-0040","Chiara Weber",3],["121117-0041","Pascal Conti",3],["131017-0050","Jean Richter",1],["131017-0051","Pascal Baumann",3],["131017-0052","Thomas Dubois",1],["131017-0053","Marco Schmid",1]]},"alternative_results":[{"columns":["persNr","name","anzahl"],"values":[["121017-0001","Marco Schmid",4],["121017-0002","Peter Müller",4],["121017-0003","Claire Steiner",5],["121017-0004","Giulia Brunner",4],["121017-0005","Thomas Dubois",5],["121017-0006","Daniel Rochat",6],["121017-0007","Monika Frei",4],["121017-0008","Andrea Huber",6],["121017-0009","Pascal Baumann",3],["121017-0010","Isabelle Haller",5],["121018-0040","Chiara Weber",3],["121117-0041","Pascal Conti",3],["131017-0050","Jean Richter",1],["131017-0051","Pascal Baumann",3],["131017-0052","Thomas Dubois",1],["131017-0053","Marco Schmid",1]]}]},{"id":63,"description":"Gib die Anzahl der Kursdurchführungen aus, für die jeder Seminarraum verwendet wurde! Zeige den Namen des Seminarraums, die Kapazität des Seminarraums und die Anzahl!","display_sequence":"B","result":{"columns":["name","anzahlPlaetze","anzahl"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]},"alternative_results":[{"columns":["name","anzahlPlaetze","anzahl"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]}]},{"id":64,"description":"Gib die Anzahl der Kursdurchführungen aus, die jedes Modul hatte! Zeige das Kürzel des Moduls, den Namen des Moduls und die Anzahl!","display_sequence":"C","result":{"columns":["kuerzel","name","anzahl"],"values":[["DBM1","Datenbankmanagement 1",4],["Java1","Java-Grundkurs",5],["Java2","Java-Fortsetzungskurs",3],["LDBD","Logisches Datenbank-Design",3],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1]]},"alternative_results":[{"columns":["kuerzel","name","anzahl"],"values":[["DBM1","Datenbankmanagement 1",4],["Java1","Java-Grundkurs",5],["Java2","Java-Fortsetzungskurs",3],["LDBD","Logisches Datenbank-Design",3],["Log1","Logik",3],["PDBD","Physisches Datenbank-Design",1]]}]},{"id":65,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent gehalten hat! Zeige die Personennummer des Dozenten, den Namen des Dozenten und die Anzahl!","display_sequence":"D","result":{"columns":["persNr","name","anzahl"],"values":[["111017-0001","Lukas Meier",0],["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["111017-0005","Anna Bianchi",4],["131017-0050","Jean Richter",2]]},"alternative_results":[{"columns":["persNr","name","anzahl"],"values":[["111017-0002","Marco Rossi",6],["111017-0003","Jean Dupont",3],["111017-0004","Sophie Keller",4],["111017-0005","Anna Bianchi",4],["131017-0050","Jean Richter",2]]}]},{"id":66,"description":"Gib die Anzahl der teilnehmenden Studierenden für jede Kursdurchführung aus! Zeige Modulkürzel und Modulname der Kursdurchführung, Startdatum der Kursdurchführung und die Anzahl!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum","anzahl"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z",4],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-09-22T00:00:00.000Z",4],["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z",3],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z",0],["Java2","Java-Fortsetzungskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z",2],["LDBD","Logisches Datenbank-Design","2008-09-02T00:00:00.000Z",3],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z",3]]},"alternative_results":[{"columns":["modulkuerzel","name","startdatum","anzahl"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z",4],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z",3],["DBM1","Datenbankmanagement 1","2010-09-22T00:00:00.000Z",4],["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z",3],["Java2","Java-Fortsetzungskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java-Fortsetzungskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z",2],["LDBD","Logisches Datenbank-Design","2008-09-02T00:00:00.000Z",3],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Dozent gehalten hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer des Dozenten aus, der die meisten Kursdurchführungen gehalten hat!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"]]}},{"id":68,"description":"I. Erstelle eine Sicht, die Personalnummer, den Namen und die Telefonnummer sowie die Anzahl der Kursdurchführungen anzeigt, die jeder Student besucht hat! II. Gib dann die Personalnummer, den Namen und die Telefonnummer der Studierenden aus, die die meisten Kursdurchführungen besucht haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"]]}},{"id":69,"description":"I. Erstelle eine Sicht, die den Kurscode, den Namen, die Dauer und die Anzahl der Kursdurchführung pro Kurs anzeigt! II. Gib dann die Kurscode, den Namen und die Dauer des Kurses mit den meisten Unterrichtseinheiten aus!","display_sequence":"C","result":{"columns":["kuerzel","name","kurstage"],"values":[["Java1","Java-Grundkurs",5]]}},{"id":70,"description":"I. Erstelle eine Sicht, die das Modulkürzel, den Namen, die Anzahl Kurstage sowie die Anzahl der Kursdurchführungen pro Modul anzeigt! II. Gib dann den Namen und die Kapazität des Raums aus, in dem die meisten Kursdurchführungen stattgefunden haben!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Erstelle eine Sicht, die den Kurscode, den Kursnamen und das Startdatum sowie die Teilnehmerzahl pro Kursdurchführung anzeigt! II. Gib dann den Kurscode, den Kursnamen und das Startdatum des Kurstermins mit den meisten Teilnehmern aus!","display_sequence":"E","result":{"columns":["modulkuerzel","name","startdatum"],"values":[["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Gib die Personennummer, den Namen und den Ort der Studierenden aus, die an mindestens drei VERSCHIEDENEN Modulen teilgenommen haben!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0001","Marco Schmid","Winterthur"],["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0051","Pascal Baumann","Basel"]]}},{"id":73,"description":"Gib die Personennummer, den Namen und die Telefonnummer der Dozierenden aus, die mindestens drei VERSCHIEDENE Module gehalten haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}},{"id":74,"description":"Gib die Personennummer, den Namen und den Ort der Dozierenden aus, die Kursdurchführungen in mindestens drei VERSCHIEDENEN Seminarräumen gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","ort"],"values":[["111017-0002","Marco Rossi","St. Gallen"],["111017-0003","Jean Dupont","Zürich"],["111017-0004","Sophie Keller","Luzern"]]}},{"id":75,"description":"Gib Namen und Kapazität der Seminarräume aus, die von mindestens drei VERSCHIEDENEN Dozenten verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Gib Namen und Kapazität der Seminarräume aus, die für Kursdurchführungen von mindestens drei VERSCHIEDENEN Modulen verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":77,"description":"Gib Code, Namen und Preis der Module aus, die in mindestens drei VERSCHIEDENEN Seminarräumen gehalten wurden!","display_sequence":"F","result":{"columns":["kuerzel","name","preis"],"values":[["Java1","Java-Grundkurs",6700],["LDBD","Logisches Datenbank-Design",6000]]}},{"id":78,"description":"Gib Code, Namen und Preis der Module aus, die von mindestens drei VERSCHIEDENEN Dozenten gehalten wurden!","display_sequence":"G","result":{"columns":["kuerzel","name","preis"],"values":[["DBM1","Datenbankmanagement 1",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Gib Namen und Ort der Personen aus, die keine Dozenten sind!","display_sequence":"A","result":{"columns":["name","ort"],"values":[["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Andrea Huber","Rapperswil"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":80,"description":"Gib Namen und Ort der Studierenden aus, die an keiner Kursdurchführung mit Startdatum im Jahr 2010 teilgenommen haben!","display_sequence":"B","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Pascal Baumann","Basel"],["Jean Richter","Basel"],["Pascal Baumann","Basel"]]}},{"id":81,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Java1 nicht besucht haben!","display_sequence":"C","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Giulia Brunner","Bern"],["Thomas Dubois","Basel"],["Chiara Weber","Zürich"],["Pascal Conti","Zürich"],["Jean Richter","Basel"],["Thomas Dubois","Basel"],["Marco Schmid","Luzern"]]}},{"id":82,"description":"Gib Namen und Ort der Studierenden aus, die das Modul mit dem Kürzel Log1 nicht besucht haben!","display_sequence":"D","result":{"columns":["name","ort"],"values":[["Lukas Meier","Lugano"],["Marco Schmid","Winterthur"],["Peter Müller","Bern"],["Claire Steiner","Winterthur"],["Daniel Rochat","Bern"],["Monika Frei","Bern"],["Pascal Baumann","Basel"],["Isabelle Haller","Luzern"],["Jean Richter","Basel"],["Pascal Baumann","Basel"],["Thomas Dubois","Basel"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die niemals eine Kursdurchführung für das Modul \"Java-Fortsetzungskurs\" gehalten haben!","display_sequence":"A","result":{"columns":["persNr","name","bueroNr","telefon"],"values":[["111017-0001","Lukas Meier",634,"+41 76 123 45 67"],["111017-0003","Jean Dupont",603,"+41 78 345 67 89"],["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}},{"id":84,"description":"Gib Personennummer, Namen und Ort der Studierenden mit Nachteilsausgleich aus, die das Modul \"Logisches Datenbank-Design\" nicht besucht haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0010","Isabelle Haller","Luzern"],["131017-0052","Thomas Dubois","Basel"]]}},{"id":85,"description":"Gib Namen und Kapazität der Seminarräume aus, die niemals für eine Kursdurchführung des Moduls \"Logisches Datenbank-Design\" verwendet wurden!","display_sequence":"C","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Gib Namen und Kapazität des Seminarraumes aus, der niemals vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die das Modul \"Physisches Datenbank-Design\" oder das Modul \"Logisches Datenbank-Design\" (oder beide) besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0003","Claire Steiner","+41 79 890 12 34"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["121018-0040","Chiara Weber","+41 79 678 90 12"],["121117-0041","Pascal Conti","+41 76 789 01 23"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":88,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die an Kursdurchführungen im Seminarraum Orion oder im Seminarraum Jupiter (oder in beiden) teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","ort"],"values":[["121017-0002","Peter Müller","Bern"],["121017-0003","Claire Steiner","Winterthur"],["121017-0004","Giulia Brunner","Bern"],["121017-0005","Thomas Dubois","Basel"],["121017-0006","Daniel Rochat","Bern"],["121017-0007","Monika Frei","Bern"],["121017-0008","Andrea Huber","Rapperswil"],["121017-0009","Pascal Baumann","Basel"],["121017-0010","Isabelle Haller","Luzern"],["121018-0040","Chiara Weber","Zürich"],["121117-0041","Pascal Conti","Zürich"],["131017-0050","Jean Richter","Basel"],["131017-0051","Pascal Baumann","Basel"],["131017-0053","Marco Schmid","Luzern"]]}},{"id":89,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die das Modul \"Logik\" oder das Modul \"Datenbankmanagement 1\" (oder beide) gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","telefon"],"values":[["111017-0002","Marco Rossi","+41 77 234 56 78"],["111017-0003","Jean Dupont","+41 78 345 67 89"],["111017-0004","Sophie Keller","+41 79 456 78 90"],["111017-0005","Anna Bianchi","+41 76 567 89 01"],["131017-0050","Jean Richter","+41 77 890 12 33"]]}},{"id":90,"description":"Gib Namen und Kapazität der Seminarräume aus, die vom Dozenten Marco Rossi oder vom Dozenten Jean Dupont (oder von beiden) verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Gib Namen und Kapazität der Seminarräume aus, die für das Modul \"Logik\" oder für das Modul \"Java-Fortsetzungskurs\" (oder für beide) verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Gib Personennummer, Namen und Ort der Studierenden aus, die sowohl das Modul \"Physisches Datenbank-Design\" als auch das Modul \"Logisches Datenbank-Design\" besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","ort"],"values":[["121017-0006","Daniel Rochat","Bern"],["121017-0008","Andrea Huber","Rapperswil"]]}},{"id":93,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die an Kursdurchführungen sowohl im Seminarraum Orion als auch im Seminarraum Jupiter teilgenommen haben!","display_sequence":"B","result":{"columns":["persNr","name","telefon"],"values":[["121017-0002","Peter Müller","+41 78 789 01 23"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0006","Daniel Rochat","+41 78 123 45 67"],["121017-0008","Andrea Huber","+41 76 345 67 89"],["131017-0051","Pascal Baumann","+41 78 901 23 45"]]}},{"id":94,"description":"Gib Personennummer, Namen und Büro der Dozierenden aus, die sowohl das Modul \"Logisches Datenbank-Design\" als auch das Modul \"Datenbankmanagement 1\" gehalten haben!","display_sequence":"C","result":{"columns":["persNr","name","bueroNr"],"values":[["111017-0004","Sophie Keller",605],["111017-0005","Anna Bianchi",622]]}},{"id":95,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl vom Dozenten Sophie Keller als auch vom Dozenten Marco Rossi verwendet wurden!","display_sequence":"D","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24]]}},{"id":96,"description":"Gib Namen und Kapazität der Seminarräume aus, die sowohl für das Modul \"Logik\" als auch für das Modul \"Java-Grundkurs\" verwendet wurden!","display_sequence":"E","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":97,"description":"Gib Personennummer, Namen, Büro und Telefonnummer der Dozierenden aus, die Kursdurchführungen sowohl im Seminarraum Jupiter als auch im Seminarraum Sirius gehalten haben!","display_sequence":"F","result":{"columns":["persNr","name","bueroNr","telefon"],"values":[["111017-0004","Sophie Keller",605,"+41 79 456 78 90"],["111017-0005","Anna Bianchi",622,"+41 76 567 89 01"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Gib Personennummer, Namen und Telefonnummer der Studierenden aus, die Kurse bei allen Lehrkräften aus Zürich besucht haben!","display_sequence":"A","result":{"columns":["persNr","name","telefon"],"values":[["121017-0001","Marco Schmid","+41 77 678 90 12"],["121017-0005","Thomas Dubois","+41 77 012 34 56"],["121017-0007","Monika Frei","+41 79 234 56 78"],["121017-0004","Giulia Brunner","+41 76 901 23 45"]]}},{"id":99,"description":"Gib Namen und Kapazität der Seminarräume aus, die von sämtlichen Dozenten aus Zürich verwendet wurden!","display_sequence":"B","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":100,"description":"Gib Namen und Kapazität der Seminarräume aus, die für sämtliche Module verwendet wurden, die weniger als CHF 5000 kosten!","display_sequence":"C","result":{"columns":["name","anzahlPlaetze"],"values":[["Jupiter",12]]}},{"id":101,"description":"Gib Personennummer, Namen und Telefonnummer der Dozierenden aus, die Kursdurchführungen sämtlicher Module mit höchstens drei Kurstagen Dauer gehalten haben!","display_sequence":"D","result":{"columns":["persNr","name","telefon"],"values":[["111017-0005","Anna Bianchi","+41 76 567 89 01"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Gib für jede Kursdurchführung die Anzahl der Studierenden aus Bern aus! Zeige Modulkürzel, Startdatum und Anzahl der Studierenden. Auch Kursdurchführungen ohne Studierende aus Bern sollen im Ergebnis enthalten sein (mit 0 in der Anzahlspalte)!","display_sequence":"A","result":{"columns":["modulkuerzel","startdatum","anzahl"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDBD","2008-05-06T00:00:00.000Z",1],["LDBD","2008-09-02T00:00:00.000Z",1],["LDBD","2010-09-24T00:00:00.000Z",0],["Log1","2008-04-16T00:00:00.000Z",1],["Log1","2009-09-17T00:00:00.000Z",1],["Log1","2010-05-01T00:00:00.000Z",0],["PDBD","2008-05-09T00:00:00.000Z",1]]}},{"id":103,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Logisches Datenbank-Design\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"B","result":{"columns":["persNr","name","ort","anzahl"],"values":[["111017-0001","Lukas Meier","Lugano",0],["121017-0001","Marco Schmid","Winterthur",1],["121017-0002","Peter Müller","Bern",0],["121017-0003","Claire Steiner","Winterthur",0],["121017-0004","Giulia Brunner","Bern",0],["121017-0005","Thomas Dubois","Basel",0],["121017-0006","Daniel Rochat","Bern",1],["121017-0007","Monika Frei","Bern",1],["121017-0008","Andrea Huber","Rapperswil",2],["121017-0009","Pascal Baumann","Basel",0],["121017-0010","Isabelle Haller","Luzern",0],["121018-0040","Chiara Weber","Zürich",1],["121117-0041","Pascal Conti","Zürich",1],["131017-0050","Jean Richter","Basel",1],["131017-0051","Pascal Baumann","Basel",0],["131017-0052","Thomas Dubois","Basel",0],["131017-0053","Marco Schmid","Luzern",0]]}},{"id":104,"description":"Gib die Anzahl der Male aus, die jeder Student am Modul \"Java-Grundkurs\" teilgenommen hat! Zeige die Personennummer, den Namen und den Ort des Studierenden sowie die Anzahl!","display_sequence":"C","result":{"columns":["persNr","name","ort","anzahl"],"values":[["111017-0001","Lukas Meier","Lugano",0],["121017-0001","Marco Schmid","Winterthur",2],["121017-0002","Peter Müller","Bern",1],["121017-0003","Claire Steiner","Winterthur",1],["121017-0004","Giulia Brunner","Bern",0],["121017-0005","Thomas Dubois","Basel",0],["121017-0006","Daniel Rochat","Bern",2],["121017-0007","Monika Frei","Bern",1],["121017-0008","Andrea Huber","Rapperswil",2],["121017-0009","Pascal Baumann","Basel",2],["121017-0010","Isabelle Haller","Luzern",1],["121018-0040","Chiara Weber","Zürich",0],["121117-0041","Pascal Conti","Zürich",0],["131017-0050","Jean Richter","Basel",0],["131017-0051","Pascal Baumann","Basel",1],["131017-0052","Thomas Dubois","Basel",0],["131017-0053","Marco Schmid","Luzern",0]]}},{"id":105,"description":"Gib die Anzahl der Male aus, die jeder Dozent das Modul \"Java-Grundkurs\" gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahll!","display_sequence":"D","result":{"columns":["persNr","name","telefon","bueroNr","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,3],["111017-0003","Jean Dupont","+41 78 345 67 89",603,2],["111017-0004","Sophie Keller","+41 79 456 78 90",605,0],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["131017-0050","Jean Richter","+41 77 890 12 33",558,0]]}},{"id":106,"description":"Gib die Anzahl der Kursdurchführungen aus, die jeder Dozent mit Start im Jahr 2010 gehalten hat! Zeige die Personennummer, den Namen, die Telefonnummer und das Büro des Dozenten sowie die Anzahl!","display_sequence":"E","result":{"columns":["persNr","name","telefon","bueroNr","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67",634,0],["111017-0002","Marco Rossi","+41 77 234 56 78",604,1],["111017-0003","Jean Dupont","+41 78 345 67 89",603,1],["111017-0004","Sophie Keller","+41 79 456 78 90",605,2],["111017-0005","Anna Bianchi","+41 76 567 89 01",622,0],["131017-0050","Jean Richter","+41 77 890 12 33",558,2]]}},{"id":107,"description":"Gib für jeden Student die Anzahl der Kursdurchführungen mit Start im Jahr 2008 aus! Zeige die Personennummer, den Namen, die Telefonnummer und den Ort des Studierenden sowie die Anzahl!","display_sequence":"F","result":{"columns":["persNr","name","telefon","ort","anzahl"],"values":[["111017-0001","Lukas Meier","+41 76 123 45 67","Lugano",0],["121017-0001","Marco Schmid","+41 77 678 90 12","Winterthur",4],["121017-0002","Peter Müller","+41 78 789 01 23","Bern",3],["121017-0003","Claire Steiner","+41 79 890 12 34","Winterthur",3],["121017-0004","Giulia Brunner","+41 76 901 23 45","Bern",1],["121017-0005","Thomas Dubois","+41 77 012 34 56","Basel",2],["121017-0006","Daniel Rochat","+41 78 123 45 67","Bern",4],["121017-0007","Monika Frei","+41 79 234 56 78","Bern",2],["121017-0008","Andrea Huber","+41 76 345 67 89","Rapperswil",3],["121017-0009","Pascal Baumann","+41 77 456 78 90","Basel",2],["121017-0010","Isabelle Haller","+41 78 567 89 01","Luzern",2],["121018-0040","Chiara Weber","+41 79 678 90 12","Zürich",0],["121117-0041","Pascal Conti","+41 76 789 01 23","Zürich",0],["131017-0050","Jean Richter","+41 77 890 12 33","Basel",1],["131017-0051","Pascal Baumann","+41 78 901 23 45","Basel",1],["131017-0052","Thomas Dubois","+41 79 012 34 56","Basel",0],["131017-0053","Marco Schmid","+41 78 250 28 55","Luzern",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Basel teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"A","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["DBM1","Datenbankmanagement 1","2008-04-02T00:00:00.000Z","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-05-06T00:00:00.000Z","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z","Sirius","Anna Bianchi"],["PDBD","Physisches Datenbank-Design","2008-05-09T00:00:00.000Z","Jupiter","Sophie Keller"],["Log1","Logik","2009-09-17T00:00:00.000Z","Jupiter","Anna Bianchi"],["DBM1","Datenbankmanagement 1","2010-02-15T00:00:00.000Z","Sirius","Sophie Keller"],["Java1","Java-Grundkurs","2010-05-01T00:00:00.000Z","Saturnus","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}},{"id":109,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student aus Bern teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"B","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Java1","Java-Grundkurs","2008-03-06T00:00:00.000Z","Tellus","Marco Rossi"],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Marco Rossi"],["LDBD","Logisches Datenbank-Design","2010-09-24T00:00:00.000Z","Saturnus","Sophie Keller"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}},{"id":110,"description":"Gib Informationen über Kursdurchführungen aus, an denen kein Student mit Nachteilsausgleich teilgenommen hat! Zeige Modulkürzel, Modulname, Startdatum, Namen des Seminarraums und Namen des Dozenten!","display_sequence":"C","result":{"columns":["modulkuerzel","name","startdatum","name","name"],"values":[["Log1","Logik","2008-04-16T00:00:00.000Z","Jupiter","Jean Dupont"],["LDBD","Logisches Datenbank-Design","2008-05-06T00:00:00.000Z","Sirius","Anna Bianchi"],["Java1","Java-Grundkurs","2008-09-02T00:00:00.000Z","Tellus","Jean Dupont"],["DBM1","Datenbankmanagement 1","2009-01-28T00:00:00.000Z","Jupiter","Anna Bianchi"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Marco Rossi"],["Java1","Java-Grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Marco Rossi"]]}}]}]} \ No newline at end of file diff --git a/public/languages/en-pg/data.sql b/public/languages/en-pg/data.sql new file mode 100644 index 0000000..80ad349 --- /dev/null +++ b/public/languages/en-pg/data.sql @@ -0,0 +1,141 @@ +CREATE TABLE Person (person_id TEXT NOT NULL, name TEXT NOT NULL, address TEXT NOT NULL, postal_code TEXT NOT NULL, city TEXT NOT NULL, phone TEXT NOT NULL, PRIMARY KEY (person_id)); +CREATE TABLE Room (id INTEGER NOT NULL, name TEXT NOT NULL, capacity INTEGER NOT NULL, PRIMARY KEY (id)); +CREATE UNIQUE INDEX rum_namn ON Room (name); +CREATE TABLE Student (person_id TEXT NOT NULL, has_disability BOOLEAN NOT NULL, CONSTRAINT STUDENT_PK PRIMARY KEY (person_id), CONSTRAINT Student_Person_FK FOREIGN KEY (person_id) REFERENCES Person (person_id) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Teacher (person_id TEXT NOT NULL, office_room INTEGER NOT NULL, CONSTRAINT teacher_pk PRIMARY KEY (person_id), CONSTRAINT fk_teacher_person FOREIGN KEY (person_id) REFERENCES Person (person_id) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Course (course_code TEXT NOT NULL, name TEXT NOT NULL, duration INTEGER NOT NULL, price INTEGER NOT NULL, description TEXT NOT NULL, PRIMARY KEY (course_code)); +CREATE UNIQUE INDEX kurs_ben ON Course (name); +CREATE TABLE CourseInstance (course TEXT NOT NULL, start_date DATE NOT NULL, teacher TEXT NOT NULL, room INTEGER NOT NULL, CONSTRAINT courseinstance_pk PRIMARY KEY (course, start_date), CONSTRAINT fk_courseinstance_course FOREIGN KEY (course) REFERENCES Course (course_code) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_teacher FOREIGN KEY (teacher) REFERENCES Teacher (person_id) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_room FOREIGN KEY (room) REFERENCES Room (id) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Participation (student TEXT NOT NULL, course TEXT NOT NULL, start_date DATE NOT NULL, CONSTRAINT participation_pk PRIMARY KEY (course, start_date, student), CONSTRAINT fk_participation_courseinstance FOREIGN KEY (course, start_date) REFERENCES CourseInstance (course, start_date) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_participation_student FOREIGN KEY (student) REFERENCES Student (person_id) ON DELETE RESTRICT ON UPDATE CASCADE); +INSERT INTO Person VALUES ('EN-001', 'James Smith', 'Main Street 1', 'GU1 1AA', 'Guildford', '01234567890'); +INSERT INTO Person VALUES ('EN-002', 'John Brown', 'Oak Avenue 2', 'RG1 2AB', 'Reading', '01234567891'); +INSERT INTO Person VALUES ('EN-003', 'William Jones', 'Park Road 3', 'OX1 3AC', 'Oxford', '01234567892'); +INSERT INTO Person VALUES ('EN-004', 'Mary Wilson', 'High Street 4', 'CB2 4AD', 'Cambridge', '01234567893'); +INSERT INTO Person VALUES ('EN-005', 'Sarah Taylor', 'Mill Lane 5', 'BN1 5AE', 'Oxford', '01234567894'); +INSERT INTO Person VALUES ('EN-006', 'John Clark', 'Church Road 6', 'BS1 6AF', 'Brighton', '01234567895'); +INSERT INTO Person VALUES ('EN-007', 'Anne Hall', 'Elm Drive 3', 'YO1 7AG', 'Bristol', '01234567896'); +INSERT INTO Person VALUES ('EN-008', 'Emily Ford', 'River Road 4', 'BS2 8AH', 'Brighton', '01234567897'); +INSERT INTO Person VALUES ('EN-009', 'Robert Stone', 'Lake Drive 1', 'YO2 9AI', 'Bristol', '01234567898'); +INSERT INTO Person VALUES ('EN-010', 'David Wood', 'School Lane 3', 'BA1 1AJ', 'York', '01234567899'); +INSERT INTO Person VALUES ('EN-011', 'Susan Blair', 'Birch Way 2', 'YO3 2AK', 'Bristol', '01234567900'); +INSERT INTO Person VALUES ('EN-012', 'George Hunt', 'Birch Way 24', 'YO4 3AL', 'Bristol', '01234567901'); +INSERT INTO Person VALUES ('EN-013', 'Peter Grant', 'Hill Road 112', 'OX2 4AM', 'Bath', '01234567902'); +INSERT INTO Person VALUES ('EN-014', 'Jane Bell', 'Bridge Street 5', 'BA2 5AN', 'York', '01234567903'); +INSERT INTO Person VALUES ('EN-015', 'Laura Miles', 'Valley Road 3', 'CB3 6AO', 'Cambridge', '01234567904'); +INSERT INTO Person VALUES ('EN-016', 'Alice Cole', 'King Street 44', 'OX3 7AP', 'Oxford', '01234567905'); +INSERT INTO Person VALUES ('EN-017', 'Jane Palmer', 'Harbour Lane 15b', 'OX4 8AQ', 'Oxford', '01234567906'); +INSERT INTO Person VALUES ('EN-018', 'William White', 'Station Road 4', 'BA3 9AR', 'York', '01234567907'); +INSERT INTO Person VALUES ('EN-019', 'Jane Bell', 'School Lane 12', 'BA4 1AS', 'York', '01234567908'); +INSERT INTO Person VALUES ('EN-020', 'David Wood', 'School Lane 1', 'BA5 2AT', 'York', '01234567909'); +INSERT INTO Person VALUES ('EN-021', 'John Clark', 'High Street 63', 'CB4 3AU', 'Cambridge', '01234567910'); +INSERT INTO Room VALUES (1, 'Jupiter', 12); +INSERT INTO Room VALUES (2, 'Orion', 24); +INSERT INTO Room VALUES (3, 'Sirius', 16); +INSERT INTO Room VALUES (4, 'Tellus', 32); +INSERT INTO Room VALUES (5, 'Saturn', 24); +INSERT INTO Student VALUES ('EN-001', FALSE); +INSERT INTO Student VALUES ('EN-006', FALSE); +INSERT INTO Student VALUES ('EN-007', TRUE); +INSERT INTO Student VALUES ('EN-008', FALSE); +INSERT INTO Student VALUES ('EN-009', FALSE); +INSERT INTO Student VALUES ('EN-010', FALSE); +INSERT INTO Student VALUES ('EN-011', TRUE); +INSERT INTO Student VALUES ('EN-012', FALSE); +INSERT INTO Student VALUES ('EN-013', FALSE); +INSERT INTO Student VALUES ('EN-014', FALSE); +INSERT INTO Student VALUES ('EN-015', TRUE); +INSERT INTO Student VALUES ('EN-016', FALSE); +INSERT INTO Student VALUES ('EN-017', TRUE); +INSERT INTO Student VALUES ('EN-018', FALSE); +INSERT INTO Student VALUES ('EN-019', FALSE); +INSERT INTO Student VALUES ('EN-020', TRUE); +INSERT INTO Student VALUES ('EN-021', FALSE); +INSERT INTO Teacher VALUES ('EN-001', 634); +INSERT INTO Teacher VALUES ('EN-002', 604); +INSERT INTO Teacher VALUES ('EN-003', 603); +INSERT INTO Teacher VALUES ('EN-004', 605); +INSERT INTO Teacher VALUES ('EN-005', 622); +INSERT INTO Teacher VALUES ('EN-018', 558); +INSERT INTO Course VALUES ('DBM1', 'Database Methodology', 2, 2800, 'DB basics, normalisation, modelling, SQL'); +INSERT INTO Course VALUES ('PDB', 'Physical Database Design', 5, 7200, 'Storage structures, indexing, denormalisation'); +INSERT INTO Course VALUES ('Java1', 'Java, Basic Course', 5, 6700, 'Basic programming with Java'); +INSERT INTO Course VALUES ('Java2', 'Java, Advanced Course', 4, 6000, 'Advanced programming with Java'); +INSERT INTO Course VALUES ('LDD', 'Logical Database Design', 4, 6000, 'Advanced design, analysis patterns, metamodelling'); +INSERT INTO Course VALUES ('LOG1', 'Logic', 3, 4500, 'First order logic, predicate logic, propositional logic'); +INSERT INTO CourseInstance VALUES ('Java1', '2008-03-06T00:00:00.000Z', 'EN-002', 4); +INSERT INTO CourseInstance VALUES ('DBM1', '2008-04-02T00:00:00.000Z', 'EN-005', 3); +INSERT INTO CourseInstance VALUES ('Java2', '2008-04-16T00:00:00.000Z', 'EN-002', 2); +INSERT INTO CourseInstance VALUES ('LOG1', '2008-04-16T00:00:00.000Z', 'EN-003', 1); +INSERT INTO CourseInstance VALUES ('Java1', '2008-05-06T00:00:00.000Z', 'EN-002', 1); +INSERT INTO CourseInstance VALUES ('LDD', '2008-05-06T00:00:00.000Z', 'EN-005', 3); +INSERT INTO CourseInstance VALUES ('PDB', '2008-05-09T00:00:00.000Z', 'EN-004', 1); +INSERT INTO CourseInstance VALUES ('Java1', '2008-09-02T00:00:00.000Z', 'EN-003', 4); +INSERT INTO CourseInstance VALUES ('LDD', '2008-09-02T00:00:00.000Z', 'EN-004', 2); +INSERT INTO CourseInstance VALUES ('Java2', '2009-01-22T00:00:00.000Z', 'EN-002', 2); +INSERT INTO CourseInstance VALUES ('DBM1', '2009-01-28T00:00:00.000Z', 'EN-005', 1); +INSERT INTO CourseInstance VALUES ('LOG1', '2009-09-17T00:00:00.000Z', 'EN-005', 1); +INSERT INTO CourseInstance VALUES ('DBM1', '2010-02-15T00:00:00.000Z', 'EN-004', 3); +INSERT INTO CourseInstance VALUES ('Java2', '2010-04-11T00:00:00.000Z', 'EN-018', 4); +INSERT INTO CourseInstance VALUES ('Java1', '2010-05-01T00:00:00.000Z', 'EN-003', 5); +INSERT INTO CourseInstance VALUES ('LOG1', '2010-05-01T00:00:00.000Z', 'EN-002', 1); +INSERT INTO CourseInstance VALUES ('DBM1', '2010-09-22T00:00:00.000Z', 'EN-018', 3); +INSERT INTO CourseInstance VALUES ('LDD', '2010-09-24T00:00:00.000Z', 'EN-004', 5); +INSERT INTO CourseInstance VALUES ('Java1', '2011-05-01T00:00:00.000Z', 'EN-002', 5); +INSERT INTO Participation VALUES ('EN-006', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-008', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-014', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-015', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-019', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-006', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-007', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-008', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-015', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-007', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-010', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-012', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-009', 'LOG1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-010', 'LOG1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-007', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-006', 'LDD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-012', 'LDD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-008', 'PDB', '2008-05-09T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'PDB', '2008-05-09T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'PDB', '2008-05-09T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-006', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-014', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'LDD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'LDD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-018', 'LDD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-007', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-014', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-015', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-019', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-008', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-010', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-019', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-009', 'LOG1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-017', 'LOG1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-008', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-015', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-009', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-010', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-012', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-015', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-011', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-012', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-010', 'LOG1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'LOG1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-016', 'LOG1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-021', 'LOG1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-009', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-016', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-017', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-020', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-013', 'LDD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-016', 'LDD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Participation VALUES ('EN-017', 'LDD', '2010-09-24T00:00:00.000Z'); \ No newline at end of file diff --git a/public/languages/en-pg/db_layout_dark.svg b/public/languages/en-pg/db_layout_dark.svg new file mode 100644 index 0000000..183472e --- /dev/null +++ b/public/languages/en-pg/db_layout_dark.svg @@ -0,0 +1,263 @@ + + + + +SQLiteLayout + + +course + + + +course + + +course_code +   +TEXT + + +name +          +TEXT + + +duration +      +INTEGER + + +price +         +INTEGER + + +description +   +TEXT + + +    name (INDEX, UNIQUE)     + + + + +courseinstance + + + +courseinstance + + +course +       +TEXT + + +start_date +   +DATE + + +teacher +      +TEXT + + +room +         +INTEGER + + +    course, start_date, course, start_date     + + + + +courseinstance:f7->course:f1 + + +1 + + + + +room + + + +room + + +id +         +INTEGER + + +name +       +TEXT + + +capacity +   +INTEGER + + +    name (INDEX, UNIQUE)     + + + + +courseinstance:f10->room:f22 + + +1 + + + + +teacher + + + +teacher + + +person_id +     +TEXT + + +office_room +   +INTEGER + + + + +courseinstance:f9->teacher:f28 + + +1 + + + + +participation + + + +participation + + +student +      +TEXT + + +course +       +TEXT + + +start_date +   +DATE + + +    course, course, start_date, start_date     + + + + +participation:f15->courseinstance:f11 + + +1 + + + + +student + + + +student + + +person_id +        +TEXT + + +has_disability +   +BOOLEAN + + + + +participation:f12->student:f26 + + +1 + + + + +person + + + +person + + +person_id +     +TEXT + + +name +          +TEXT + + +address +       +TEXT + + +postal_code +   +TEXT + + +city +          +TEXT + + +phone +         +TEXT + + + + +student:f26->person:f16 + + +1 +1 + + + +teacher:f28->person:f16 + + +1 +1 + + + \ No newline at end of file diff --git a/public/languages/en-pg/db_layout_light.svg b/public/languages/en-pg/db_layout_light.svg new file mode 100644 index 0000000..b4a9bff --- /dev/null +++ b/public/languages/en-pg/db_layout_light.svg @@ -0,0 +1,263 @@ + + + + +SQLiteLayout + + +course + + + +course + + +course_code +   +TEXT + + +name +          +TEXT + + +duration +      +INTEGER + + +price +         +INTEGER + + +description +   +TEXT + + +    name (INDEX, UNIQUE)     + + + + +courseinstance + + + +courseinstance + + +course +       +TEXT + + +start_date +   +DATE + + +teacher +      +TEXT + + +room +         +INTEGER + + +    course, start_date, course, start_date     + + + + +courseinstance:f7->course:f1 + + +1 + + + + +room + + + +room + + +id +         +INTEGER + + +name +       +TEXT + + +capacity +   +INTEGER + + +    name (INDEX, UNIQUE)     + + + + +courseinstance:f10->room:f22 + + +1 + + + + +teacher + + + +teacher + + +person_id +     +TEXT + + +office_room +   +INTEGER + + + + +courseinstance:f9->teacher:f28 + + +1 + + + + +participation + + + +participation + + +student +      +TEXT + + +course +       +TEXT + + +start_date +   +DATE + + +    course, course, start_date, start_date     + + + + +participation:f15->courseinstance:f11 + + +1 + + + + +student + + + +student + + +person_id +        +TEXT + + +has_disability +   +BOOLEAN + + + + +participation:f12->student:f26 + + +1 + + + + +person + + + +person + + +person_id +     +TEXT + + +name +          +TEXT + + +address +       +TEXT + + +postal_code +   +TEXT + + +city +          +TEXT + + +phone +         +TEXT + + + + +student:f26->person:f16 + + +1 +1 + + + +teacher:f28->person:f16 + + +1 +1 + + + \ No newline at end of file diff --git a/public/languages/en-pg/questionpool.json b/public/languages/en-pg/questionpool.json new file mode 100644 index 0000000..96bd00e --- /dev/null +++ b/public/languages/en-pg/questionpool.json @@ -0,0 +1 @@ +{"language":"en","engine":"postgresql","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Retrieve person_id, name, address, and postal_code for people living in York!","display_sequence":"A","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-010","David Wood","School Lane 3","BA1 1AJ"],["EN-014","Jane Bell","Bridge Street 5","BA2 5AN"],["EN-018","William White","Station Road 4","BA3 9AR"],["EN-019","Jane Bell","School Lane 12","BA4 1AS"],["EN-020","David Wood","School Lane 1","BA5 2AT"]]}},{"id":2,"description":"Retrieve person_id, name, and phone for people living in York!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":3,"description":"Retrieve person_id, name, address, and postal_code for people living in Bristol!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-007","Anne Hall","Elm Drive 3","YO1 7AG"],["EN-009","Robert Stone","Lake Drive 1","YO2 9AI"],["EN-011","Susan Blair","Birch Way 2","YO3 2AK"],["EN-012","George Hunt","Birch Way 24","YO4 3AL"]]}},{"id":4,"description":"Retrieve person_id, name, and phone for people living in Bristol!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":5,"description":"Retrieve name, address, postal_code, and phone for people living in York!","display_sequence":"E","result":{"columns":["name","address","postal_code","phone"],"values":[["David Wood","School Lane 3","BA1 1AJ","01234567899"],["Jane Bell","Bridge Street 5","BA2 5AN","01234567903"],["William White","Station Road 4","BA3 9AR","01234567907"],["Jane Bell","School Lane 12","BA4 1AS","01234567908"],["David Wood","School Lane 1","BA5 2AT","01234567909"]]}},{"id":6,"description":"Retrieve name, address, postal_code, and phone for people living in Bristol!","display_sequence":"F","result":{"columns":["name","address","postal_code","phone"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","01234567896"],["Robert Stone","Lake Drive 1","YO2 9AI","01234567898"],["Susan Blair","Birch Way 2","YO3 2AK","01234567900"],["George Hunt","Birch Way 24","YO4 3AL","01234567901"]]}},{"id":7,"description":"Retrieve course_code, name, and price for courses of 3 weeks!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["LOG1","Logic",4500]]}},{"id":8,"description":"Retrieve course_code, name, and price for courses of 4 weeks!","display_sequence":"H","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Retrieve person_id, name, and city for people living in York or in Bristol!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-014","Jane Bell","York"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"]]}},{"id":10,"description":"Retrieve person_id, name, and phone for people living in York or in Brighton!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":11,"description":"Retrieve person_id, name, and city for people living in Bristol or in Cambridge!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-021","John Clark","Cambridge"]]}},{"id":12,"description":"Retrieve person_id, name, and phone for people living in Bristol or in Brighton!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-007","Anne Hall","01234567896"],["EN-008","Emily Ford","01234567897"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":13,"description":"Retrieve name, address, postal_code, and city for people living in York or in Cambridge!","display_sequence":"E","result":{"columns":["name","address","postal_code","city"],"values":[["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"],["John Clark","High Street 63","CB4 3AU","Cambridge"]]}},{"id":14,"description":"Retrieve name, address, postal_code, and city for people living in Bristol or in York!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":15,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Brighton!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-004","Mary Wilson","01234567893"],["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-015","Laura Miles","01234567904"],["EN-021","John Clark","01234567910"]]}},{"id":16,"description":"Retrieve person_id, name, and city for people living in York or in Cambridge!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-010","David Wood","York"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"],["EN-021","John Clark","Cambridge"]]}},{"id":17,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Oxford!","display_sequence":"I","result":{"columns":["person_id","name","phone"],"values":[["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-015","Laura Miles","01234567904"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-021","John Clark","01234567910"]]}},{"id":18,"description":"Retrieve name, address, postal_code, and city for people living in York or in Oxford!","display_sequence":"J","result":{"columns":["name","address","postal_code","city"],"values":[["William Jones","Park Road 3","OX1 3AC","Oxford"],["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":19,"description":"Retrieve course_code, name, and price for courses of 3 or 4 weeks!","display_sequence":"K","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000],["LOG1","Logic",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Retrieve person_id for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["teacher"],"values":[["EN-002"],["EN-003"],["EN-004"],["EN-005"]]}},{"id":21,"description":"Retrieve person_id for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["teacher"],"values":[["EN-002"],["EN-004"]]}},{"id":22,"description":"Retrieve person_id for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["teacher"],"values":[["EN-004"],["EN-005"],["EN-018"]]}},{"id":23,"description":"Retrieve person_id for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["teacher"],"values":[["EN-002"],["EN-003"]]}},{"id":24,"description":"Retrieve person_id for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["teacher"],"values":[["EN-002"],["EN-018"]]}},{"id":25,"description":"Retrieve person_id for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["teacher"],"values":[["EN-004"],["EN-005"],["EN-018"]]}},{"id":26,"description":"Retrieve person_id for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["teacher"],"values":[["EN-004"],["EN-005"]]}},{"id":27,"description":"Retrieve person_id for students who have participated in the course with code Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-011"],["EN-012"],["EN-013"],["EN-014"],["EN-015"],["EN-019"]]}},{"id":28,"description":"Retrieve person_id for students who have participated in the course with code DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-009"],["EN-010"],["EN-011"],["EN-015"],["EN-016"],["EN-017"],["EN-019"],["EN-020"]]}},{"id":29,"description":"Retrieve person_id for students who have participated in the course with code Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["EN-007"],["EN-009"],["EN-010"],["EN-011"],["EN-012"],["EN-014"],["EN-015"],["EN-019"]]}},{"id":30,"description":"Retrieve person_id for students who have participated in the course with code LDD!","display_sequence":"K","result":{"columns":["student"],"values":[["EN-006"],["EN-011"],["EN-012"],["EN-013"],["EN-016"],["EN-017"],["EN-018"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Retrieve person_id, name, and phone for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":32,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":33,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-004","Mary Wilson","High Street 4","CB2 4AD"],["EN-005","Sarah Taylor","Mill Lane 5","BN1 5AE"],["EN-018","William White","Station Road 4","BA3 9AR"]]}},{"id":34,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"]]}},{"id":35,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-018","William White","York"]]}},{"id":36,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["William White","Station Road 4","BA3 9AR","York"]]}},{"id":37,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":38,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 1!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-003","William Jones","Oxford"],["EN-004","Mary Wilson","Cambridge"],["EN-005","Sarah Taylor","Oxford"]]}},{"id":39,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 2!","display_sequence":"I","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-002","John Brown","Oak Avenue 2","RG1 2AB"],["EN-004","Mary Wilson","High Street 4","CB2 4AD"]]}},{"id":40,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java2!","display_sequence":"J","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-018","William White","01234567907"]]}},{"id":41,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code LDD!","display_sequence":"K","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-005","Sarah Taylor","Oxford"]]}},{"id":42,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code Java1!","display_sequence":"L","result":{"columns":["name","address","postal_code","city"],"values":[["John Brown","Oak Avenue 2","RG1 2AB","Reading"],["William Jones","Park Road 3","OX1 3AC","Oxford"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-003","William Jones",603],["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}},{"id":44,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-004","Mary Wilson",605]]}},{"id":45,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622],["EN-018","William White",558]]}},{"id":46,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-003","William Jones",603]]}},{"id":47,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-018","William White",558]]}},{"id":48,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["person_id","name","office_room"],"values":[["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622],["EN-018","William White",558]]}},{"id":49,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","office_room"],"values":[["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Retrieve person_id for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["EN-007"],["EN-008"],["EN-009"],["EN-010"],["EN-011"],["EN-013"],["EN-016"],["EN-017"],["EN-019"],["EN-021"]]}},{"id":51,"description":"Retrieve person_id for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["EN-007"],["EN-010"],["EN-011"],["EN-012"],["EN-013"],["EN-014"],["EN-015"],["EN-018"],["EN-019"]]}},{"id":52,"description":"Retrieve person_id for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["EN-006"],["EN-008"],["EN-009"],["EN-010"],["EN-012"],["EN-013"],["EN-014"],["EN-015"],["EN-019"]]}},{"id":53,"description":"Retrieve person_id for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-009"],["EN-011"],["EN-012"],["EN-015"],["EN-016"],["EN-017"],["EN-020"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-008","Emily Ford","01234567897"],["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-011","Susan Blair","01234567900"],["EN-013","Peter Grant","01234567902"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-019","Jane Bell","01234567908"],["EN-021","John Clark","01234567910"]]}},{"id":55,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-018","William White","York"],["EN-019","Jane Bell","York"]]}},{"id":56,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"],["EN-013","Peter Grant","01234567902"],["EN-014","Jane Bell","01234567903"],["EN-015","Laura Miles","01234567904"],["EN-019","Jane Bell","01234567908"]]}},{"id":57,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-020","David Wood","York"]]}},{"id":58,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"E","result":{"columns":["name","address","city","phone"],"values":[["Alice Cole","King Street 44","Oxford","01234567905"],["Anne Hall","Elm Drive 3","Bristol","01234567896"],["David Wood","School Lane 3","York","01234567899"],["Emily Ford","River Road 4","Brighton","01234567897"],["Jane Bell","School Lane 12","York","01234567908"],["Jane Palmer","Harbour Lane 15b","Oxford","01234567906"],["John Clark","High Street 63","Cambridge","01234567910"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Robert Stone","Lake Drive 1","Bristol","01234567898"],["Susan Blair","Birch Way 2","Bristol","01234567900"]]}},{"id":59,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Orion!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["Peter Grant","Hill Road 112","OX2 4AM","Bath"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["William White","Station Road 4","BA3 9AR","York"]]}},{"id":60,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Tellus!","display_sequence":"G","result":{"columns":["name","address","city","phone"],"values":[["David Wood","School Lane 3","York","01234567899"],["Emily Ford","River Road 4","Brighton","01234567897"],["George Hunt","Birch Way 24","Bristol","01234567901"],["Jane Bell","Bridge Street 5","York","01234567903"],["Jane Bell","School Lane 12","York","01234567908"],["John Clark","Church Road 6","Brighton","01234567895"],["Laura Miles","Valley Road 3","Cambridge","01234567904"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Robert Stone","Lake Drive 1","Bristol","01234567898"]]}},{"id":61,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Sirius!","display_sequence":"H","result":{"columns":["name","address","postal_code","city"],"values":[["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["David Wood","School Lane 1","BA5 2AT","York"],["Emily Ford","River Road 4","BS2 8AH","Brighton"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["John Clark","Church Road 6","BS1 6AF","Brighton"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Retrieve the number of course instances each student has participated in! Show the student's person_id, the student's name, and the count!","display_sequence":"A","result":{"columns":["person_id","name","count"],"values":[["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-013","Peter Grant",6],["EN-009","Robert Stone",4],["EN-019","Jane Bell",3],["EN-012","George Hunt",4],["EN-011","Susan Blair",6],["EN-014","Jane Bell",3],["EN-010","David Wood",5],["EN-015","Laura Miles",5],["EN-020","David Wood",1],["EN-001","James Smith",0],["EN-021","John Clark",1],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-016","Alice Cole",3],["EN-008","Emily Ford",5]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-013","Peter Grant",6],["EN-009","Robert Stone",4],["EN-019","Jane Bell",3],["EN-012","George Hunt",4],["EN-011","Susan Blair",6],["EN-014","Jane Bell",3],["EN-010","David Wood",5],["EN-015","Laura Miles",5],["EN-020","David Wood",1],["EN-021","John Clark",1],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-016","Alice Cole",3],["EN-008","Emily Ford",5]]}]},{"id":63,"description":"Retrieve the number of course instances each room has been used for! Show the room's name, the room's capacity, and the count!","display_sequence":"B","result":{"columns":["name","capacity","count"],"values":[["Orion",24,3],["Sirius",16,4],["Saturn",24,3],["Tellus",32,3],["Jupiter",12,6]]},"alternative_results":[{"columns":["name","capacity","count"],"values":[["Tellus",32,3],["Orion",24,3],["Sirius",16,4],["Saturn",24,3],["Jupiter",12,6]]}]},{"id":64,"description":"Retrieve the number of course instances each course has had! Show the course's code, the course's name, and the count!","display_sequence":"C","result":{"columns":["course_code","name","count"],"values":[["LDD","Logical Database Design",3],["Java2","Java, Advanced Course",3],["LOG1","Logic",3],["DBM1","Database Methodology",4],["PDB","Physical Database Design",1],["Java1","Java, Basic Course",5]]},"alternative_results":[{"columns":["course_code","name","count"],"values":[["LDD","Logical Database Design",3],["Java2","Java, Advanced Course",3],["LOG1","Logic",3],["DBM1","Database Methodology",4],["PDB","Physical Database Design",1],["Java1","Java, Basic Course",5]]}]},{"id":65,"description":"Retrieve the number of course instances each teacher has held! Show the teacher's person_id, the teacher's name, and the count!","display_sequence":"D","result":{"columns":["person_id","name","count"],"values":[["EN-005","Sarah Taylor",4],["EN-004","Mary Wilson",4],["EN-003","William Jones",3],["EN-001","James Smith",0],["EN-018","William White",2],["EN-002","John Brown",6]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-005","Sarah Taylor",4],["EN-004","Mary Wilson",4],["EN-003","William Jones",3],["EN-018","William White",2],["EN-002","John Brown",6]]}]},{"id":66,"description":"Retrieve the number of participating students for each course instance! Show the course instance's course_code and course name, the course instance's start_date, and the number of participating students!","display_sequence":"E","result":{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02",4],["DBM1","Database Methodology","2010-09-22",4],["Java1","Java, Basic Course","2010-05-01",3],["Java1","Java, Basic Course","2008-05-06",2],["LDD","Logical Database Design","2008-05-06",2],["LOG1","Logic","2008-04-16",2],["LDD","Logical Database Design","2008-09-02",3],["LOG1","Logic","2009-09-17",2],["Java2","Java, Advanced Course","2010-04-11",4],["Java2","Java, Advanced Course","2009-01-22",4],["DBM1","Database Methodology","2009-01-28",3],["Java1","Java, Basic Course","2008-03-06",6],["Java2","Java, Advanced Course","2008-04-16",4],["Java1","Java, Basic Course","2011-05-01",0],["LOG1","Logic","2010-05-01",4],["PDB","Physical Database Design","2008-05-09",3],["LDD","Logical Database Design","2010-09-24",3],["Java1","Java, Basic Course","2008-09-02",2],["DBM1","Database Methodology","2010-02-15",3]]},"alternative_results":[{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02",4],["DBM1","Database Methodology","2010-09-22",4],["Java1","Java, Basic Course","2010-05-01",3],["Java1","Java, Basic Course","2008-05-06",2],["LDD","Logical Database Design","2008-05-06",2],["LOG1","Logic","2008-04-16",2],["LDD","Logical Database Design","2008-09-02",3],["LOG1","Logic","2009-09-17",2],["Java2","Java, Advanced Course","2010-04-11",4],["Java2","Java, Advanced Course","2009-01-22",4],["DBM1","Database Methodology","2009-01-28",3],["Java1","Java, Basic Course","2008-03-06",6],["Java2","Java, Advanced Course","2008-04-16",4],["LOG1","Logic","2010-05-01",4],["PDB","Physical Database Design","2008-05-09",3],["LDD","Logical Database Design","2010-09-24",3],["Java1","Java, Basic Course","2008-09-02",2],["DBM1","Database Methodology","2010-02-15",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances each teacher has held! II. Retrieve person_id, name, and phone for the teacher who has held the most course instances!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"]]}},{"id":68,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances per student! II. Retrieve person_id, name, and phone for the student who has participated in the most course instances!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-013","Peter Grant","01234567902"],["EN-011","Susan Blair","01234567900"]]}},{"id":69,"description":"I. Retrieve course_code, name, and duration as well as the number of course instances per course! II. Retrieve course_code, name, and duration for the course that has had the most course instances!","display_sequence":"C","result":{"columns":["course_code","name","duration"],"values":[["Java1","Java, Basic Course",5]]}},{"id":70,"description":"I. Retrieve name and capacity as well as the number of course instances per room! II. Retrieve name and capacity for the room that has been used for the most course instances!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Retrieve course_code, course name, and start_date as well as the number of participants per course instance! II. Retrieve course_code, course name, and start_date for the course instance that has had the most participants!","display_sequence":"E","result":{"columns":["course","name","start_date"],"values":[["Java1","Java, Basic Course","2008-03-06"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Retrieve person_id, name, and city for students who have participated in at least three DIFFERENT courses!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-019","Jane Bell","York"]]}},{"id":73,"description":"Retrieve person_id, name, and phone for teachers who have held at least three DIFFERENT courses!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":74,"description":"Retrieve person_id, name, and city for teachers who have held course instances in at least three DIFFERENT rooms!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-003","William Jones","Oxford"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":75,"description":"Retrieve name and capacity for rooms that have been used by at least three DIFFERENT teachers!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturn",24]]}},{"id":76,"description":"Retrieve name and capacity for rooms that have been used for course instances of at least three DIFFERENT courses!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":77,"description":"Retrieve code, name, and price for courses that have been held in at least three DIFFERENT rooms!","display_sequence":"F","result":{"columns":["course_code","name","price"],"values":[["Java1","Java, Basic Course",6700],["LDD","Logical Database Design",6000]]}},{"id":78,"description":"Retrieve code, name, and price for courses that have been held by at least three DIFFERENT teachers!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["DBM1","Database Methodology",2800],["LOG1","Logic",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Retrieve name and city for people who are not teachers!","display_sequence":"A","result":{"columns":["name","city"],"values":[["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Robert Stone","Bristol"],["David Wood","York"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Peter Grant","Bath"],["Jane Bell","York"],["Laura Miles","Cambridge"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["Jane Bell","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":80,"description":"Retrieve name and city for students who did not participate in any course instance with a start date during 2010!","display_sequence":"B","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Jane Bell","York"],["William White","York"],["Jane Bell","York"]]}},{"id":81,"description":"Retrieve name and city for students who have not taken the course with code Java1!","display_sequence":"C","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["Robert Stone","Bristol"],["David Wood","York"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["William White","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":82,"description":"Retrieve name and city for students who have not taken the course with code LOG1!","display_sequence":"D","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Jane Bell","York"],["Laura Miles","Cambridge"],["William White","York"],["Jane Bell","York"],["David Wood","York"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Retrieve person_id, name, office_room, and phone for teachers who have never held a course instance for the course \"Java, Advanced Course\"!","display_sequence":"A","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-001","James Smith",634,"01234567890"],["EN-003","William Jones",603,"01234567892"],["EN-004","Mary Wilson",605,"01234567893"],["EN-005","Sarah Taylor",622,"01234567894"]]}},{"id":84,"description":"Retrieve person_id, name, and city for students with disabilities who have not taken the course \"Logical Database Design\"!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-020","David Wood","York"]]}},{"id":85,"description":"Retrieve name and capacity for rooms that have never been used for a course instance of the course \"Logical Database Design\"!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Retrieve name and capacity for rooms that have never been used by the teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Retrieve person_id, name, and phone for students who have taken the course \"Physical Database Design\" or the course \"Logical Database Design\" (or both)!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"],["EN-013","Peter Grant","01234567902"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-018","William White","01234567907"]]}},{"id":88,"description":"Retrieve person_id, name, and city for students who have participated in course instances in room Orion or in room Jupiter (or in both)!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-021","John Clark","Cambridge"]]}},{"id":89,"description":"Retrieve person_id, name, and phone for teachers who have held the course \"Logic\" or the course \"Database Methodology\" (or both)!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-018","William White","01234567907"]]}},{"id":90,"description":"Retrieve name and capacity for rooms that have been used by teacher John Brown or by teacher William Jones (or by both)!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Saturn",24],["Tellus",32]]}},{"id":91,"description":"Retrieve name and capacity for rooms that have been used for the course \"Logic\" or for the course \"Java, Advanced Course\" (or for both)!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Retrieve person_id, name, and city for students who have taken both the course \"Physical Database Design\" and the course \"Logical Database Design\"!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-013","Peter Grant","Bath"],["EN-011","Susan Blair","Bristol"]]}},{"id":93,"description":"Retrieve person_id, name, and phone for students who have participated in course instances in both room Orion and room Jupiter!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-011","Susan Blair","01234567900"],["EN-007","Anne Hall","01234567896"],["EN-010","David Wood","01234567899"],["EN-019","Jane Bell","01234567908"],["EN-013","Peter Grant","01234567902"]]}},{"id":94,"description":"Retrieve person_id, name, and office_room for teachers who have held both the course \"Logical Database Design\" and the course \"Database Methodology\"!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605]]}},{"id":95,"description":"Retrieve name and capacity for rooms that have been used by both teacher Mary Wilson and teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Orion",24],["Saturn",24],["Jupiter",12]]}},{"id":96,"description":"Retrieve name and capacity for rooms that have been used for both the course \"Logic\" and the course \"Java, Basic Course\"!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":97,"description":"Retrieve person_id, name, office_room, and phone for teachers who have held course instances in both room Jupiter and room Sirius!","display_sequence":"F","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-005","Sarah Taylor",622,"01234567894"],["EN-004","Mary Wilson",605,"01234567893"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Retrieve person_id, name, and phone for students who have participated in course instances led by all teachers from Oxford!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"]]}},{"id":99,"description":"Retrieve name and capacity for rooms that have been used by all teachers from Oxford!","display_sequence":"B","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":100,"description":"Retrieve name and capacity for rooms that have been used for all courses that cost under 5000!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":101,"description":"Retrieve person_id, name, and phone for teachers who have held course instances of all courses of at most three weeks!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-005","Sarah Taylor","01234567894"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Retrieve the number of students from Bristol for each course instance! Show course_code, start_date, and the number of students! Course instances without students from Bristol should also be shown!","display_sequence":"A","result":{"columns":["course","start_date","count"],"values":[["LDD","2008-09-02",1],["Java1","2008-03-06",0],["Java1","2008-05-06",2],["LOG1","2010-05-01",0],["LDD","2010-09-24",0],["Java2","2010-04-11",2],["LDD","2008-05-06",1],["DBM1","2008-04-02",1],["Java2","2008-04-16",3],["Java1","2010-05-01",2],["LOG1","2009-09-17",1],["DBM1","2010-09-22",1],["DBM1","2009-01-28",0],["Java2","2009-01-22",1],["Java1","2011-05-01",0],["LOG1","2008-04-16",1],["Java1","2008-09-02",0],["DBM1","2010-02-15",1],["PDB","2008-05-09",1]]}},{"id":103,"description":"Retrieve the number of times each student has participated in the course \"Logical Database Design\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"B","result":{"columns":["person_id","name","city","count"],"values":[["EN-006","John Clark","Brighton",1],["EN-007","Anne Hall","Bristol",0],["EN-013","Peter Grant","Bath",2],["EN-009","Robert Stone","Bristol",0],["EN-019","Jane Bell","York",0],["EN-012","George Hunt","Bristol",1],["EN-011","Susan Blair","Bristol",1],["EN-014","Jane Bell","York",0],["EN-010","David Wood","York",0],["EN-015","Laura Miles","Cambridge",0],["EN-020","David Wood","York",0],["EN-001","James Smith","Guildford",0],["EN-021","John Clark","Cambridge",0],["EN-017","Jane Palmer","Oxford",1],["EN-018","William White","York",1],["EN-016","Alice Cole","Oxford",1],["EN-008","Emily Ford","Brighton",0]]}},{"id":104,"description":"Retrieve the number of times each student has participated in the course \"Java, Basic Course\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"C","result":{"columns":["person_id","name","city","count"],"values":[["EN-006","John Clark","Brighton",2],["EN-007","Anne Hall","Bristol",1],["EN-013","Peter Grant","Bath",2],["EN-009","Robert Stone","Bristol",0],["EN-019","Jane Bell","York",1],["EN-012","George Hunt","Bristol",1],["EN-011","Susan Blair","Bristol",2],["EN-014","Jane Bell","York",2],["EN-010","David Wood","York",0],["EN-015","Laura Miles","Cambridge",1],["EN-020","David Wood","York",0],["EN-001","James Smith","Guildford",0],["EN-021","John Clark","Cambridge",0],["EN-017","Jane Palmer","Oxford",0],["EN-018","William White","York",0],["EN-016","Alice Cole","Oxford",0],["EN-008","Emily Ford","Brighton",1]]}},{"id":105,"description":"Retrieve the number of times each teacher has held the course \"Java, Basic Course\"! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held the course should also be shown!","display_sequence":"D","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-018","William White","01234567907",558,0],["EN-002","John Brown","01234567891",604,3],["EN-004","Mary Wilson","01234567893",605,0],["EN-005","Sarah Taylor","01234567894",622,0],["EN-001","James Smith","01234567890",634,0],["EN-003","William Jones","01234567892",603,2]]}},{"id":106,"description":"Retrieve the number of course instances each teacher has held with a start date during the year 2010! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held course instances during 2010 should also be shown!","display_sequence":"E","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-018","William White","01234567907",558,2],["EN-002","John Brown","01234567891",604,1],["EN-004","Mary Wilson","01234567893",605,2],["EN-005","Sarah Taylor","01234567894",622,0],["EN-001","James Smith","01234567890",634,0],["EN-003","William Jones","01234567892",603,1]]}},{"id":107,"description":"Retrieve the number of course instances with a start date during the year 2008 for each student! Show the student's person_id, name, phone, and city as well as the count! Students who have not participated in course instances during 2008 should also be shown!","display_sequence":"F","result":{"columns":["person_id","name","phone","city","count"],"values":[["EN-006","John Clark","01234567895","Brighton",4],["EN-007","Anne Hall","01234567896","Bristol",3],["EN-013","Peter Grant","01234567902","Bath",3],["EN-009","Robert Stone","01234567898","Bristol",1],["EN-019","Jane Bell","01234567908","York",1],["EN-012","George Hunt","01234567901","Bristol",2],["EN-011","Susan Blair","01234567900","Bristol",4],["EN-014","Jane Bell","01234567903","York",2],["EN-010","David Wood","01234567899","York",2],["EN-015","Laura Miles","01234567904","Cambridge",2],["EN-020","David Wood","01234567909","York",0],["EN-001","James Smith","01234567890","Guildford",0],["EN-021","John Clark","01234567910","Cambridge",0],["EN-017","Jane Palmer","01234567906","Oxford",0],["EN-018","William White","01234567907","York",1],["EN-016","Alice Cole","01234567905","Oxford",0],["EN-008","Emily Ford","01234567897","Brighton",3]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Retrieve information about course instances in which no student from York has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"A","result":{"columns":["course","name","start_date","name","name"],"values":[["DBM1","Database Methodology","2008-04-02","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-05-06","Jupiter","John Brown"],["LDD","Logical Database Design","2008-05-06","Sirius","Sarah Taylor"],["PDB","Physical Database Design","2008-05-09","Jupiter","Mary Wilson"],["LOG1","Logic","2009-09-17","Jupiter","Sarah Taylor"],["DBM1","Database Methodology","2010-02-15","Sirius","Mary Wilson"],["Java1","Java, Basic Course","2010-05-01","Saturn","William Jones"],["LDD","Logical Database Design","2010-09-24","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01","Saturn","John Brown"]]}},{"id":109,"description":"Retrieve information about course instances in which no student from Bristol has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"B","result":{"columns":["course","name","start_date","name","name"],"values":[["Java1","Java, Basic Course","2008-03-06","Tellus","John Brown"],["Java1","Java, Basic Course","2008-09-02","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01","Jupiter","John Brown"],["LDD","Logical Database Design","2010-09-24","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01","Saturn","John Brown"]]}},{"id":110,"description":"Retrieve information about course instances in which no student with a disability has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"C","result":{"columns":["course","name","start_date","name","name"],"values":[["LOG1","Logic","2008-04-16","Jupiter","William Jones"],["LDD","Logical Database Design","2008-05-06","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-09-02","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01","Jupiter","John Brown"],["Java1","Java, Basic Course","2011-05-01","Saturn","John Brown"]]}}]}]} \ No newline at end of file diff --git a/public/languages/en/questionpool.json b/public/languages/en/questionpool.json index 0f876f9..efa0ba7 100644 --- a/public/languages/en/questionpool.json +++ b/public/languages/en/questionpool.json @@ -1 +1 @@ -{"language":"en","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Retrieve person_id, name, address, and postal_code for people living in York!","display_sequence":"A","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-010","David Wood","School Lane 3","BA1 1AJ"],["EN-014","Jane Bell","Bridge Street 5","BA2 5AN"],["EN-018","William White","Station Road 4","BA3 9AR"],["EN-019","Jane Bell","School Lane 12","BA4 1AS"],["EN-020","David Wood","School Lane 1","BA5 2AT"]]}},{"id":2,"description":"Retrieve person_id, name, and phone for people living in York!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":3,"description":"Retrieve person_id, name, address, and postal_code for people living in Bristol!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-007","Anne Hall","Elm Drive 3","YO1 7AG"],["EN-009","Robert Stone","Lake Drive 1","YO2 9AI"],["EN-011","Susan Blair","Birch Way 2","YO3 2AK"],["EN-012","George Hunt","Birch Way 24","YO4 3AL"]]}},{"id":4,"description":"Retrieve person_id, name, and phone for people living in Bristol!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":5,"description":"Retrieve name, address, postal_code, and phone for people living in York!","display_sequence":"E","result":{"columns":["name","address","postal_code","phone"],"values":[["David Wood","School Lane 3","BA1 1AJ","01234567899"],["Jane Bell","Bridge Street 5","BA2 5AN","01234567903"],["William White","Station Road 4","BA3 9AR","01234567907"],["Jane Bell","School Lane 12","BA4 1AS","01234567908"],["David Wood","School Lane 1","BA5 2AT","01234567909"]]}},{"id":6,"description":"Retrieve name, address, postal_code, and phone for people living in Bristol!","display_sequence":"F","result":{"columns":["name","address","postal_code","phone"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","01234567896"],["Robert Stone","Lake Drive 1","YO2 9AI","01234567898"],["Susan Blair","Birch Way 2","YO3 2AK","01234567900"],["George Hunt","Birch Way 24","YO4 3AL","01234567901"]]}},{"id":7,"description":"Retrieve course_code, name, and price for courses of 3 weeks!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["LOG1","Logic",4500]]}},{"id":8,"description":"Retrieve course_code, name, and price for courses of 4 weeks!","display_sequence":"H","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Retrieve person_id, name, and city for people living in York or in Bristol!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-014","Jane Bell","York"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"]]}},{"id":10,"description":"Retrieve person_id, name, and phone for people living in York or in Brighton!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":11,"description":"Retrieve person_id, name, and city for people living in Bristol or in Cambridge!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-021","John Clark","Cambridge"]]}},{"id":12,"description":"Retrieve person_id, name, and phone for people living in Bristol or in Brighton!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-007","Anne Hall","01234567896"],["EN-008","Emily Ford","01234567897"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":13,"description":"Retrieve name, address, postal_code, and city for people living in York or in Cambridge!","display_sequence":"E","result":{"columns":["name","address","postal_code","city"],"values":[["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"],["John Clark","High Street 63","CB4 3AU","Cambridge"]]}},{"id":14,"description":"Retrieve name, address, postal_code, and city for people living in Bristol or in York!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":15,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Brighton!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-004","Mary Wilson","01234567893"],["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-015","Laura Miles","01234567904"],["EN-021","John Clark","01234567910"]]}},{"id":16,"description":"Retrieve person_id, name, and city for people living in York or in Cambridge!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-010","David Wood","York"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"],["EN-021","John Clark","Cambridge"]]}},{"id":17,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Oxford!","display_sequence":"I","result":{"columns":["person_id","name","phone"],"values":[["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-015","Laura Miles","01234567904"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-021","John Clark","01234567910"]]}},{"id":18,"description":"Retrieve name, address, postal_code, and city for people living in York or in Oxford!","display_sequence":"J","result":{"columns":["name","address","postal_code","city"],"values":[["William Jones","Park Road 3","OX1 3AC","Oxford"],["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":19,"description":"Retrieve course_code, name, and price for courses of 3 or 4 weeks!","display_sequence":"K","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000],["LOG1","Logic",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Retrieve person_id for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["teacher"],"values":[["EN-003"],["EN-002"],["EN-004"],["EN-005"]]}},{"id":21,"description":"Retrieve person_id for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["teacher"],"values":[["EN-002"],["EN-004"]]}},{"id":22,"description":"Retrieve person_id for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"],["EN-018"]]}},{"id":23,"description":"Retrieve person_id for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["teacher"],"values":[["EN-002"],["EN-003"]]}},{"id":24,"description":"Retrieve person_id for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["teacher"],"values":[["EN-002"],["EN-018"]]}},{"id":25,"description":"Retrieve person_id for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"],["EN-018"]]}},{"id":26,"description":"Retrieve person_id for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"]]}},{"id":27,"description":"Retrieve person_id for students who have participated in the course with code Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["EN-006"],["EN-008"],["EN-013"],["EN-014"],["EN-015"],["EN-019"],["EN-007"],["EN-011"],["EN-012"]]}},{"id":28,"description":"Retrieve person_id for students who have participated in the course with code DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-015"],["EN-010"],["EN-019"],["EN-011"],["EN-009"],["EN-016"],["EN-017"],["EN-020"]]}},{"id":29,"description":"Retrieve person_id for students who have participated in the course with code Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["EN-007"],["EN-010"],["EN-011"],["EN-012"],["EN-014"],["EN-015"],["EN-019"],["EN-009"]]}},{"id":30,"description":"Retrieve person_id for students who have participated in the course with code LDD!","display_sequence":"K","result":{"columns":["student"],"values":[["EN-006"],["EN-012"],["EN-011"],["EN-013"],["EN-018"],["EN-016"],["EN-017"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Retrieve person_id, name, and phone for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-003","William Jones","01234567892"],["EN-002","John Brown","01234567891"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":32,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":33,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-005","Sarah Taylor","Mill Lane 5","BN1 5AE"],["EN-004","Mary Wilson","High Street 4","CB2 4AD"],["EN-018","William White","Station Road 4","BA3 9AR"]]}},{"id":34,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"]]}},{"id":35,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-018","William White","York"]]}},{"id":36,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["William White","Station Road 4","BA3 9AR","York"]]}},{"id":37,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-005","Sarah Taylor","01234567894"],["EN-004","Mary Wilson","01234567893"]]}},{"id":38,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 1!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-003","William Jones","Oxford"],["EN-002","John Brown","Reading"],["EN-004","Mary Wilson","Cambridge"],["EN-005","Sarah Taylor","Oxford"]]}},{"id":39,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 2!","display_sequence":"I","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-002","John Brown","Oak Avenue 2","RG1 2AB"],["EN-004","Mary Wilson","High Street 4","CB2 4AD"]]}},{"id":40,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java2!","display_sequence":"J","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-018","William White","01234567907"]]}},{"id":41,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code LDD!","display_sequence":"K","result":{"columns":["person_id","name","city"],"values":[["EN-005","Sarah Taylor","Oxford"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":42,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code Java1!","display_sequence":"L","result":{"columns":["name","address","postal_code","city"],"values":[["John Brown","Oak Avenue 2","RG1 2AB","Reading"],["William Jones","Park Road 3","OX1 3AC","Oxford"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","office_room"],"values":[["EN-003","William Jones",603],["EN-002","John Brown",604],["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}},{"id":44,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-004","Mary Wilson",605]]}},{"id":45,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605],["EN-018","William White",558]]}},{"id":46,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-003","William Jones",603]]}},{"id":47,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-018","William White",558]]}},{"id":48,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605],["EN-018","William White",558]]}},{"id":49,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Retrieve person_id for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["EN-009"],["EN-010"],["EN-007"],["EN-011"],["EN-008"],["EN-013"],["EN-019"],["EN-017"],["EN-016"],["EN-021"]]}},{"id":51,"description":"Retrieve person_id for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["EN-007"],["EN-010"],["EN-011"],["EN-012"],["EN-013"],["EN-018"],["EN-014"],["EN-015"],["EN-019"]]}},{"id":52,"description":"Retrieve person_id for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["EN-006"],["EN-008"],["EN-013"],["EN-014"],["EN-015"],["EN-019"],["EN-009"],["EN-010"],["EN-012"]]}},{"id":53,"description":"Retrieve person_id for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-015"],["EN-012"],["EN-011"],["EN-009"],["EN-016"],["EN-017"],["EN-020"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-007","Anne Hall","01234567896"],["EN-011","Susan Blair","01234567900"],["EN-008","Emily Ford","01234567897"],["EN-013","Peter Grant","01234567902"],["EN-019","Jane Bell","01234567908"],["EN-017","Jane Palmer","01234567906"],["EN-016","Alice Cole","01234567905"],["EN-021","John Clark","01234567910"]]}},{"id":55,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-018","William White","York"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-019","Jane Bell","York"]]}},{"id":56,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-013","Peter Grant","01234567902"],["EN-014","Jane Bell","01234567903"],["EN-015","Laura Miles","01234567904"],["EN-019","Jane Bell","01234567908"],["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"]]}},{"id":57,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-015","Laura Miles","Cambridge"],["EN-012","George Hunt","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-020","David Wood","York"]]}},{"id":58,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"E","result":{"columns":["name","address","city","phone"],"values":[["Robert Stone","Lake Drive 1","Bristol","01234567898"],["David Wood","School Lane 3","York","01234567899"],["Anne Hall","Elm Drive 3","Bristol","01234567896"],["Susan Blair","Birch Way 2","Bristol","01234567900"],["Emily Ford","River Road 4","Brighton","01234567897"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Jane Bell","School Lane 12","York","01234567908"],["Jane Palmer","Harbour Lane 15b","Oxford","01234567906"],["Alice Cole","King Street 44","Oxford","01234567905"],["John Clark","High Street 63","Cambridge","01234567910"]]}},{"id":59,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Orion!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Peter Grant","Hill Road 112","OX2 4AM","Bath"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["Jane Bell","School Lane 12","BA4 1AS","York"]]}},{"id":60,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Tellus!","display_sequence":"G","result":{"columns":["name","address","city","phone"],"values":[["John Clark","Church Road 6","Brighton","01234567895"],["Emily Ford","River Road 4","Brighton","01234567897"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Jane Bell","Bridge Street 5","York","01234567903"],["Laura Miles","Valley Road 3","Cambridge","01234567904"],["Jane Bell","School Lane 12","York","01234567908"],["Robert Stone","Lake Drive 1","Bristol","01234567898"],["David Wood","School Lane 3","York","01234567899"],["George Hunt","Birch Way 24","Bristol","01234567901"]]}},{"id":61,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Sirius!","display_sequence":"H","result":{"columns":["name","address","postal_code","city"],"values":[["John Clark","Church Road 6","BS1 6AF","Brighton"],["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["Emily Ford","River Road 4","BS2 8AH","Brighton"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["David Wood","School Lane 1","BA5 2AT","York"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Retrieve the number of course instances each student has participated in! Show the student's person_id, the student's name, and the count!","display_sequence":"A","result":{"columns":["person_id","name","count"],"values":[["EN-001","James Smith",0],["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-008","Emily Ford",5],["EN-009","Robert Stone",4],["EN-010","David Wood",5],["EN-011","Susan Blair",6],["EN-012","George Hunt",4],["EN-013","Peter Grant",6],["EN-014","Jane Bell",3],["EN-015","Laura Miles",5],["EN-016","Alice Cole",3],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-019","Jane Bell",3],["EN-020","David Wood",1],["EN-021","John Clark",1]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-008","Emily Ford",5],["EN-009","Robert Stone",4],["EN-010","David Wood",5],["EN-011","Susan Blair",6],["EN-012","George Hunt",4],["EN-013","Peter Grant",6],["EN-014","Jane Bell",3],["EN-015","Laura Miles",5],["EN-016","Alice Cole",3],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-019","Jane Bell",3],["EN-020","David Wood",1],["EN-021","John Clark",1]]}]},{"id":63,"description":"Retrieve the number of course instances each room has been used for! Show the room's name, the room's capacity, and the count!","display_sequence":"B","result":{"columns":["name","capacity","count"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturn",24,3]]},"alternative_results":[{"columns":["name","capacity","count"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturn",24,3]]}]},{"id":64,"description":"Retrieve the number of course instances each course has had! Show the course's code, the course's name, and the count!","display_sequence":"C","result":{"columns":["course_code","name","count"],"values":[["DBM1","Database Methodology",4],["Java1","Java, Basic Course",5],["Java2","Java, Advanced Course",3],["LDD","Logical Database Design",3],["LOG1","Logic",3],["PDB","Physical Database Design",1]]},"alternative_results":[{"columns":["course_code","name","count"],"values":[["DBM1","Database Methodology",4],["Java1","Java, Basic Course",5],["Java2","Java, Advanced Course",3],["LDD","Logical Database Design",3],["LOG1","Logic",3],["PDB","Physical Database Design",1]]}]},{"id":65,"description":"Retrieve the number of course instances each teacher has held! Show the teacher's person_id, the teacher's name, and the count!","display_sequence":"D","result":{"columns":["person_id","name","count"],"values":[["EN-001","James Smith",0],["EN-002","John Brown",6],["EN-003","William Jones",3],["EN-004","Mary Wilson",4],["EN-005","Sarah Taylor",4],["EN-018","William White",2]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-002","John Brown",6],["EN-003","William Jones",3],["EN-004","Mary Wilson",4],["EN-005","Sarah Taylor",4],["EN-018","William White",2]]}]},{"id":66,"description":"Retrieve the number of participating students for each course instance! Show the course instance's course_code and course name, the course instance's start_date, and the number of participating students!","display_sequence":"E","result":{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z",4],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z",3],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z",3],["DBM1","Database Methodology","2010-09-22T00:00:00.000Z",4],["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z",6],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z",2],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z",2],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z",3],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z",0],["Java2","Java, Advanced Course","2008-04-16T00:00:00.000Z",4],["Java2","Java, Advanced Course","2009-01-22T00:00:00.000Z",4],["Java2","Java, Advanced Course","2010-04-11T00:00:00.000Z",4],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z",2],["LDD","Logical Database Design","2008-09-02T00:00:00.000Z",3],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z",3],["LOG1","Logic","2008-04-16T00:00:00.000Z",2],["LOG1","Logic","2009-09-17T00:00:00.000Z",2],["LOG1","Logic","2010-05-01T00:00:00.000Z",4],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z",3]]},"alternative_results":[{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z",4],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z",3],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z",3],["DBM1","Database Methodology","2010-09-22T00:00:00.000Z",4],["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z",6],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z",2],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z",2],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z",3],["Java2","Java, Advanced Course","2008-04-16T00:00:00.000Z",4],["Java2","Java, Advanced Course","2009-01-22T00:00:00.000Z",4],["Java2","Java, Advanced Course","2010-04-11T00:00:00.000Z",4],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z",2],["LDD","Logical Database Design","2008-09-02T00:00:00.000Z",3],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z",3],["LOG1","Logic","2008-04-16T00:00:00.000Z",2],["LOG1","Logic","2009-09-17T00:00:00.000Z",2],["LOG1","Logic","2010-05-01T00:00:00.000Z",4],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances each teacher has held! II. Retrieve person_id, name, and phone for the teacher who has held the most course instances!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"]]}},{"id":68,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances per student! II. Retrieve person_id, name, and phone for the student who has participated in the most course instances!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-011","Susan Blair","01234567900"],["EN-013","Peter Grant","01234567902"]]}},{"id":69,"description":"I. Retrieve course_code, name, and duration as well as the number of course instances per course! II. Retrieve course_code, name, and duration for the course that has had the most course instances!","display_sequence":"C","result":{"columns":["course_code","name","duration"],"values":[["Java1","Java, Basic Course",5]]}},{"id":70,"description":"I. Retrieve name and capacity as well as the number of course instances per room! II. Retrieve name and capacity for the room that has been used for the most course instances!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Retrieve course_code, course name, and start_date as well as the number of participants per course instance! II. Retrieve course_code, course name, and start_date for the course instance that has had the most participants!","display_sequence":"E","result":{"columns":["course","name","start_date"],"values":[["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Retrieve person_id, name, and city for students who have participated in at least three DIFFERENT courses!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-019","Jane Bell","York"]]}},{"id":73,"description":"Retrieve person_id, name, and phone for teachers who have held at least three DIFFERENT courses!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":74,"description":"Retrieve person_id, name, and city for teachers who have held course instances in at least three DIFFERENT rooms!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-003","William Jones","Oxford"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":75,"description":"Retrieve name and capacity for rooms that have been used by at least three DIFFERENT teachers!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturn",24]]}},{"id":76,"description":"Retrieve name and capacity for rooms that have been used for course instances of at least three DIFFERENT courses!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":77,"description":"Retrieve code, name, and price for courses that have been held in at least three DIFFERENT rooms!","display_sequence":"F","result":{"columns":["course_code","name","price"],"values":[["Java1","Java, Basic Course",6700],["LDD","Logical Database Design",6000]]}},{"id":78,"description":"Retrieve code, name, and price for courses that have been held by at least three DIFFERENT teachers!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["DBM1","Database Methodology",2800],["LOG1","Logic",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Retrieve name and city for people who are not teachers!","display_sequence":"A","result":{"columns":["name","city"],"values":[["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Robert Stone","Bristol"],["David Wood","York"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Peter Grant","Bath"],["Jane Bell","York"],["Laura Miles","Cambridge"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["Jane Bell","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":80,"description":"Retrieve name and city for students who did not participate in any course instance with a start date during 2010!","display_sequence":"B","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Jane Bell","York"],["William White","York"],["Jane Bell","York"]]}},{"id":81,"description":"Retrieve name and city for students who have not taken the course with code Java1!","display_sequence":"C","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["Robert Stone","Bristol"],["David Wood","York"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["William White","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":82,"description":"Retrieve name and city for students who have not taken the course with code LOG1!","display_sequence":"D","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Jane Bell","York"],["Laura Miles","Cambridge"],["William White","York"],["Jane Bell","York"],["David Wood","York"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Retrieve person_id, name, office_room, and phone for teachers who have never held a course instance for the course \"Java, Advanced Course\"!","display_sequence":"A","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-001","James Smith",634,"01234567890"],["EN-003","William Jones",603,"01234567892"],["EN-004","Mary Wilson",605,"01234567893"],["EN-005","Sarah Taylor",622,"01234567894"]]}},{"id":84,"description":"Retrieve person_id, name, and city for students with disabilities who have not taken the course \"Logical Database Design\"!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-020","David Wood","York"]]}},{"id":85,"description":"Retrieve name and capacity for rooms that have never been used for a course instance of the course \"Logical Database Design\"!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Retrieve name and capacity for rooms that have never been used by the teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Retrieve person_id, name, and phone for students who have taken the course \"Physical Database Design\" or the course \"Logical Database Design\" (or both)!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"],["EN-013","Peter Grant","01234567902"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-018","William White","01234567907"]]}},{"id":88,"description":"Retrieve person_id, name, and city for students who have participated in course instances in room Orion or in room Jupiter (or in both)!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-021","John Clark","Cambridge"]]}},{"id":89,"description":"Retrieve person_id, name, and phone for teachers who have held the course \"Logic\" or the course \"Database Methodology\" (or both)!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-018","William White","01234567907"]]}},{"id":90,"description":"Retrieve name and capacity for rooms that have been used by teacher John Brown or by teacher William Jones (or by both)!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Saturn",24],["Tellus",32]]}},{"id":91,"description":"Retrieve name and capacity for rooms that have been used for the course \"Logic\" or for the course \"Java, Advanced Course\" (or for both)!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Retrieve person_id, name, and city for students who have taken both the course \"Physical Database Design\" and the course \"Logical Database Design\"!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-011","Susan Blair","Bristol"],["EN-013","Peter Grant","Bath"]]}},{"id":93,"description":"Retrieve person_id, name, and phone for students who have participated in course instances in both room Orion and room Jupiter!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-010","David Wood","01234567899"],["EN-011","Susan Blair","01234567900"],["EN-013","Peter Grant","01234567902"],["EN-019","Jane Bell","01234567908"]]}},{"id":94,"description":"Retrieve person_id, name, and office_room for teachers who have held both the course \"Logical Database Design\" and the course \"Database Methodology\"!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}},{"id":95,"description":"Retrieve name and capacity for rooms that have been used by both teacher Mary Wilson and teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Saturn",24]]}},{"id":96,"description":"Retrieve name and capacity for rooms that have been used for both the course \"Logic\" and the course \"Java, Basic Course\"!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":97,"description":"Retrieve person_id, name, office_room, and phone for teachers who have held course instances in both room Jupiter and room Sirius!","display_sequence":"F","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-004","Mary Wilson",605,"01234567893"],["EN-005","Sarah Taylor",622,"01234567894"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Retrieve person_id, name, and phone for students who have participated in course instances led by all teachers from Oxford!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"],["EN-009","Robert Stone","01234567898"]]}},{"id":99,"description":"Retrieve name and capacity for rooms that have been used by all teachers from Oxford!","display_sequence":"B","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":100,"description":"Retrieve name and capacity for rooms that have been used for all courses that cost under 5000!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":101,"description":"Retrieve person_id, name, and phone for teachers who have held course instances of all courses of at most three weeks!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-005","Sarah Taylor","01234567894"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Retrieve the number of students from Bristol for each course instance! Show course_code, start_date, and the number of students! Course instances without students from Bristol should also be shown!","display_sequence":"A","result":{"columns":["course","start_date","count"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDD","2008-05-06T00:00:00.000Z",1],["LDD","2008-09-02T00:00:00.000Z",1],["LDD","2010-09-24T00:00:00.000Z",0],["LOG1","2008-04-16T00:00:00.000Z",1],["LOG1","2009-09-17T00:00:00.000Z",1],["LOG1","2010-05-01T00:00:00.000Z",0],["PDB","2008-05-09T00:00:00.000Z",1]]}},{"id":103,"description":"Retrieve the number of times each student has participated in the course \"Logical Database Design\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"B","result":{"columns":["person_id","name","city","count"],"values":[["EN-001","James Smith","Guildford",0],["EN-006","John Clark","Brighton",1],["EN-007","Anne Hall","Bristol",0],["EN-008","Emily Ford","Brighton",0],["EN-009","Robert Stone","Bristol",0],["EN-010","David Wood","York",0],["EN-011","Susan Blair","Bristol",1],["EN-012","George Hunt","Bristol",1],["EN-013","Peter Grant","Bath",2],["EN-014","Jane Bell","York",0],["EN-015","Laura Miles","Cambridge",0],["EN-016","Alice Cole","Oxford",1],["EN-017","Jane Palmer","Oxford",1],["EN-018","William White","York",1],["EN-019","Jane Bell","York",0],["EN-020","David Wood","York",0],["EN-021","John Clark","Cambridge",0]]}},{"id":104,"description":"Retrieve the number of times each student has participated in the course \"Java, Basic Course\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"C","result":{"columns":["person_id","name","city","count"],"values":[["EN-001","James Smith","Guildford",0],["EN-006","John Clark","Brighton",2],["EN-007","Anne Hall","Bristol",1],["EN-008","Emily Ford","Brighton",1],["EN-009","Robert Stone","Bristol",0],["EN-010","David Wood","York",0],["EN-011","Susan Blair","Bristol",2],["EN-012","George Hunt","Bristol",1],["EN-013","Peter Grant","Bath",2],["EN-014","Jane Bell","York",2],["EN-015","Laura Miles","Cambridge",1],["EN-016","Alice Cole","Oxford",0],["EN-017","Jane Palmer","Oxford",0],["EN-018","William White","York",0],["EN-019","Jane Bell","York",1],["EN-020","David Wood","York",0],["EN-021","John Clark","Cambridge",0]]}},{"id":105,"description":"Retrieve the number of times each teacher has held the course \"Java, Basic Course\"! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held the course should also be shown!","display_sequence":"D","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-001","James Smith","01234567890",634,0],["EN-002","John Brown","01234567891",604,3],["EN-003","William Jones","01234567892",603,2],["EN-004","Mary Wilson","01234567893",605,0],["EN-005","Sarah Taylor","01234567894",622,0],["EN-018","William White","01234567907",558,0]]}},{"id":106,"description":"Retrieve the number of course instances each teacher has held with a start date during the year 2010! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held course instances during 2010 should also be shown!","display_sequence":"E","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-001","James Smith","01234567890",634,0],["EN-002","John Brown","01234567891",604,1],["EN-003","William Jones","01234567892",603,1],["EN-004","Mary Wilson","01234567893",605,2],["EN-005","Sarah Taylor","01234567894",622,0],["EN-018","William White","01234567907",558,2]]}},{"id":107,"description":"Retrieve the number of course instances with a start date during the year 2008 for each student! Show the student's person_id, name, phone, and city as well as the count! Students who have not participated in course instances during 2008 should also be shown!","display_sequence":"F","result":{"columns":["person_id","name","phone","city","count"],"values":[["EN-001","James Smith","01234567890","Guildford",0],["EN-006","John Clark","01234567895","Brighton",4],["EN-007","Anne Hall","01234567896","Bristol",3],["EN-008","Emily Ford","01234567897","Brighton",3],["EN-009","Robert Stone","01234567898","Bristol",1],["EN-010","David Wood","01234567899","York",2],["EN-011","Susan Blair","01234567900","Bristol",4],["EN-012","George Hunt","01234567901","Bristol",2],["EN-013","Peter Grant","01234567902","Bath",3],["EN-014","Jane Bell","01234567903","York",2],["EN-015","Laura Miles","01234567904","Cambridge",2],["EN-016","Alice Cole","01234567905","Oxford",0],["EN-017","Jane Palmer","01234567906","Oxford",0],["EN-018","William White","01234567907","York",1],["EN-019","Jane Bell","01234567908","York",1],["EN-020","David Wood","01234567909","York",0],["EN-021","John Clark","01234567910","Cambridge",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Retrieve information about course instances in which no student from York has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"A","result":{"columns":["course","name","start_date","name","name"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z","Jupiter","John Brown"],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z","Sirius","Sarah Taylor"],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z","Jupiter","Mary Wilson"],["LOG1","Logic","2009-09-17T00:00:00.000Z","Jupiter","Sarah Taylor"],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z","Sirius","Mary Wilson"],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z","Saturn","William Jones"],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}},{"id":109,"description":"Retrieve information about course instances in which no student from Bristol has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"B","result":{"columns":["course","name","start_date","name","name"],"values":[["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z","Tellus","John Brown"],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01T00:00:00.000Z","Jupiter","John Brown"],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}},{"id":110,"description":"Retrieve information about course instances in which no student with a disability has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"C","result":{"columns":["course","name","start_date","name","name"],"values":[["LOG1","Logic","2008-04-16T00:00:00.000Z","Jupiter","William Jones"],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01T00:00:00.000Z","Jupiter","John Brown"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}}]}]} \ No newline at end of file +{"language":"en","engine":"sqlite","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Retrieve person_id, name, address, and postal_code for people living in York!","display_sequence":"A","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-010","David Wood","School Lane 3","BA1 1AJ"],["EN-014","Jane Bell","Bridge Street 5","BA2 5AN"],["EN-018","William White","Station Road 4","BA3 9AR"],["EN-019","Jane Bell","School Lane 12","BA4 1AS"],["EN-020","David Wood","School Lane 1","BA5 2AT"]]}},{"id":2,"description":"Retrieve person_id, name, and phone for people living in York!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":3,"description":"Retrieve person_id, name, address, and postal_code for people living in Bristol!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-007","Anne Hall","Elm Drive 3","YO1 7AG"],["EN-009","Robert Stone","Lake Drive 1","YO2 9AI"],["EN-011","Susan Blair","Birch Way 2","YO3 2AK"],["EN-012","George Hunt","Birch Way 24","YO4 3AL"]]}},{"id":4,"description":"Retrieve person_id, name, and phone for people living in Bristol!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":5,"description":"Retrieve name, address, postal_code, and phone for people living in York!","display_sequence":"E","result":{"columns":["name","address","postal_code","phone"],"values":[["David Wood","School Lane 3","BA1 1AJ","01234567899"],["Jane Bell","Bridge Street 5","BA2 5AN","01234567903"],["William White","Station Road 4","BA3 9AR","01234567907"],["Jane Bell","School Lane 12","BA4 1AS","01234567908"],["David Wood","School Lane 1","BA5 2AT","01234567909"]]}},{"id":6,"description":"Retrieve name, address, postal_code, and phone for people living in Bristol!","display_sequence":"F","result":{"columns":["name","address","postal_code","phone"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","01234567896"],["Robert Stone","Lake Drive 1","YO2 9AI","01234567898"],["Susan Blair","Birch Way 2","YO3 2AK","01234567900"],["George Hunt","Birch Way 24","YO4 3AL","01234567901"]]}},{"id":7,"description":"Retrieve course_code, name, and price for courses of 3 weeks!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["LOG1","Logic",4500]]}},{"id":8,"description":"Retrieve course_code, name, and price for courses of 4 weeks!","display_sequence":"H","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Retrieve person_id, name, and city for people living in York or in Bristol!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-014","Jane Bell","York"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"]]}},{"id":10,"description":"Retrieve person_id, name, and phone for people living in York or in Brighton!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-010","David Wood","01234567899"],["EN-014","Jane Bell","01234567903"],["EN-018","William White","01234567907"],["EN-019","Jane Bell","01234567908"],["EN-020","David Wood","01234567909"]]}},{"id":11,"description":"Retrieve person_id, name, and city for people living in Bristol or in Cambridge!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-007","Anne Hall","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-021","John Clark","Cambridge"]]}},{"id":12,"description":"Retrieve person_id, name, and phone for people living in Bristol or in Brighton!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-007","Anne Hall","01234567896"],["EN-008","Emily Ford","01234567897"],["EN-009","Robert Stone","01234567898"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"]]}},{"id":13,"description":"Retrieve name, address, postal_code, and city for people living in York or in Cambridge!","display_sequence":"E","result":{"columns":["name","address","postal_code","city"],"values":[["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"],["John Clark","High Street 63","CB4 3AU","Cambridge"]]}},{"id":14,"description":"Retrieve name, address, postal_code, and city for people living in Bristol or in York!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":15,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Brighton!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-004","Mary Wilson","01234567893"],["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-015","Laura Miles","01234567904"],["EN-021","John Clark","01234567910"]]}},{"id":16,"description":"Retrieve person_id, name, and city for people living in York or in Cambridge!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-004","Mary Wilson","Cambridge"],["EN-010","David Wood","York"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-020","David Wood","York"],["EN-021","John Clark","Cambridge"]]}},{"id":17,"description":"Retrieve person_id, name, and phone for people living in Cambridge or in Oxford!","display_sequence":"I","result":{"columns":["person_id","name","phone"],"values":[["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-015","Laura Miles","01234567904"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-021","John Clark","01234567910"]]}},{"id":18,"description":"Retrieve name, address, postal_code, and city for people living in York or in Oxford!","display_sequence":"J","result":{"columns":["name","address","postal_code","city"],"values":[["William Jones","Park Road 3","OX1 3AC","Oxford"],["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["David Wood","School Lane 3","BA1 1AJ","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","School Lane 12","BA4 1AS","York"],["David Wood","School Lane 1","BA5 2AT","York"]]}},{"id":19,"description":"Retrieve course_code, name, and price for courses of 3 or 4 weeks!","display_sequence":"K","result":{"columns":["course_code","name","price"],"values":[["Java2","Java, Advanced Course",6000],["LDD","Logical Database Design",6000],["LOG1","Logic",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Retrieve person_id for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["teacher"],"values":[["EN-003"],["EN-002"],["EN-004"],["EN-005"]]}},{"id":21,"description":"Retrieve person_id for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["teacher"],"values":[["EN-002"],["EN-004"]]}},{"id":22,"description":"Retrieve person_id for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"],["EN-018"]]}},{"id":23,"description":"Retrieve person_id for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["teacher"],"values":[["EN-002"],["EN-003"]]}},{"id":24,"description":"Retrieve person_id for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["teacher"],"values":[["EN-002"],["EN-018"]]}},{"id":25,"description":"Retrieve person_id for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"],["EN-018"]]}},{"id":26,"description":"Retrieve person_id for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["teacher"],"values":[["EN-005"],["EN-004"]]}},{"id":27,"description":"Retrieve person_id for students who have participated in the course with code Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["EN-006"],["EN-008"],["EN-013"],["EN-014"],["EN-015"],["EN-019"],["EN-007"],["EN-011"],["EN-012"]]}},{"id":28,"description":"Retrieve person_id for students who have participated in the course with code DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-015"],["EN-010"],["EN-019"],["EN-011"],["EN-009"],["EN-016"],["EN-017"],["EN-020"]]}},{"id":29,"description":"Retrieve person_id for students who have participated in the course with code Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["EN-007"],["EN-010"],["EN-011"],["EN-012"],["EN-014"],["EN-015"],["EN-019"],["EN-009"]]}},{"id":30,"description":"Retrieve person_id for students who have participated in the course with code LDD!","display_sequence":"K","result":{"columns":["student"],"values":[["EN-006"],["EN-012"],["EN-011"],["EN-013"],["EN-018"],["EN-016"],["EN-017"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Retrieve person_id, name, and phone for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-003","William Jones","01234567892"],["EN-002","John Brown","01234567891"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":32,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":33,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-005","Sarah Taylor","Mill Lane 5","BN1 5AE"],["EN-004","Mary Wilson","High Street 4","CB2 4AD"],["EN-018","William White","Station Road 4","BA3 9AR"]]}},{"id":34,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"]]}},{"id":35,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-018","William White","York"]]}},{"id":36,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Sarah Taylor","Mill Lane 5","BN1 5AE","Oxford"],["Mary Wilson","High Street 4","CB2 4AD","Cambridge"],["William White","Station Road 4","BA3 9AR","York"]]}},{"id":37,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","phone"],"values":[["EN-005","Sarah Taylor","01234567894"],["EN-004","Mary Wilson","01234567893"]]}},{"id":38,"description":"Retrieve person_id, name, and city for teachers who have taught in the room with id 1!","display_sequence":"H","result":{"columns":["person_id","name","city"],"values":[["EN-003","William Jones","Oxford"],["EN-002","John Brown","Reading"],["EN-004","Mary Wilson","Cambridge"],["EN-005","Sarah Taylor","Oxford"]]}},{"id":39,"description":"Retrieve person_id, name, address, and postal_code for teachers who have taught in the room with id 2!","display_sequence":"I","result":{"columns":["person_id","name","address","postal_code"],"values":[["EN-002","John Brown","Oak Avenue 2","RG1 2AB"],["EN-004","Mary Wilson","High Street 4","CB2 4AD"]]}},{"id":40,"description":"Retrieve person_id, name, and phone for teachers who have taught on the course with code Java2!","display_sequence":"J","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-018","William White","01234567907"]]}},{"id":41,"description":"Retrieve person_id, name, and city for teachers who have taught on the course with code LDD!","display_sequence":"K","result":{"columns":["person_id","name","city"],"values":[["EN-005","Sarah Taylor","Oxford"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":42,"description":"Retrieve name, address, postal_code, and city for teachers who have taught on the course with code Java1!","display_sequence":"L","result":{"columns":["name","address","postal_code","city"],"values":[["John Brown","Oak Avenue 2","RG1 2AB","Reading"],["William Jones","Park Road 3","OX1 3AC","Oxford"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 1!","display_sequence":"A","result":{"columns":["person_id","name","office_room"],"values":[["EN-003","William Jones",603],["EN-002","John Brown",604],["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}},{"id":44,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 2!","display_sequence":"B","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-004","Mary Wilson",605]]}},{"id":45,"description":"Retrieve person_id, name, and office_room for teachers who have taught in the room with id 3!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605],["EN-018","William White",558]]}},{"id":46,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java1!","display_sequence":"D","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-003","William Jones",603]]}},{"id":47,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code Java2!","display_sequence":"E","result":{"columns":["person_id","name","office_room"],"values":[["EN-002","John Brown",604],["EN-018","William White",558]]}},{"id":48,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code DBM1!","display_sequence":"F","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605],["EN-018","William White",558]]}},{"id":49,"description":"Retrieve person_id, name, and office_room for teachers who have taught on the course with code LDD!","display_sequence":"G","result":{"columns":["person_id","name","office_room"],"values":[["EN-005","Sarah Taylor",622],["EN-004","Mary Wilson",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Retrieve person_id for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["EN-009"],["EN-010"],["EN-007"],["EN-011"],["EN-008"],["EN-013"],["EN-019"],["EN-017"],["EN-016"],["EN-021"]]}},{"id":51,"description":"Retrieve person_id for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["EN-007"],["EN-010"],["EN-011"],["EN-012"],["EN-013"],["EN-018"],["EN-014"],["EN-015"],["EN-019"]]}},{"id":52,"description":"Retrieve person_id for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["EN-006"],["EN-008"],["EN-013"],["EN-014"],["EN-015"],["EN-019"],["EN-009"],["EN-010"],["EN-012"]]}},{"id":53,"description":"Retrieve person_id for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["EN-006"],["EN-007"],["EN-008"],["EN-015"],["EN-012"],["EN-011"],["EN-009"],["EN-016"],["EN-017"],["EN-020"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-007","Anne Hall","01234567896"],["EN-011","Susan Blair","01234567900"],["EN-008","Emily Ford","01234567897"],["EN-013","Peter Grant","01234567902"],["EN-019","Jane Bell","01234567908"],["EN-017","Jane Palmer","01234567906"],["EN-016","Alice Cole","01234567905"],["EN-021","John Clark","01234567910"]]}},{"id":55,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Orion!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-018","William White","York"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-019","Jane Bell","York"]]}},{"id":56,"description":"Retrieve person_id, name, and phone for students who have participated in a course instance in Tellus!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-013","Peter Grant","01234567902"],["EN-014","Jane Bell","01234567903"],["EN-015","Laura Miles","01234567904"],["EN-019","Jane Bell","01234567908"],["EN-009","Robert Stone","01234567898"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"]]}},{"id":57,"description":"Retrieve person_id, name, and city for students who have participated in a course instance in Sirius!","display_sequence":"D","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-015","Laura Miles","Cambridge"],["EN-012","George Hunt","Bristol"],["EN-011","Susan Blair","Bristol"],["EN-009","Robert Stone","Bristol"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-020","David Wood","York"]]}},{"id":58,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Jupiter!","display_sequence":"E","result":{"columns":["name","address","city","phone"],"values":[["Robert Stone","Lake Drive 1","Bristol","01234567898"],["David Wood","School Lane 3","York","01234567899"],["Anne Hall","Elm Drive 3","Bristol","01234567896"],["Susan Blair","Birch Way 2","Bristol","01234567900"],["Emily Ford","River Road 4","Brighton","01234567897"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Jane Bell","School Lane 12","York","01234567908"],["Jane Palmer","Harbour Lane 15b","Oxford","01234567906"],["Alice Cole","King Street 44","Oxford","01234567905"],["John Clark","High Street 63","Cambridge","01234567910"]]}},{"id":59,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Orion!","display_sequence":"F","result":{"columns":["name","address","postal_code","city"],"values":[["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["David Wood","School Lane 3","BA1 1AJ","York"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Peter Grant","Hill Road 112","OX2 4AM","Bath"],["William White","Station Road 4","BA3 9AR","York"],["Jane Bell","Bridge Street 5","BA2 5AN","York"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["Jane Bell","School Lane 12","BA4 1AS","York"]]}},{"id":60,"description":"Retrieve name, address, city, and phone for students who have participated in a course instance in Tellus!","display_sequence":"G","result":{"columns":["name","address","city","phone"],"values":[["John Clark","Church Road 6","Brighton","01234567895"],["Emily Ford","River Road 4","Brighton","01234567897"],["Peter Grant","Hill Road 112","Bath","01234567902"],["Jane Bell","Bridge Street 5","York","01234567903"],["Laura Miles","Valley Road 3","Cambridge","01234567904"],["Jane Bell","School Lane 12","York","01234567908"],["Robert Stone","Lake Drive 1","Bristol","01234567898"],["David Wood","School Lane 3","York","01234567899"],["George Hunt","Birch Way 24","Bristol","01234567901"]]}},{"id":61,"description":"Retrieve name, address, postal_code, and city for students who have participated in a course instance in Sirius!","display_sequence":"H","result":{"columns":["name","address","postal_code","city"],"values":[["John Clark","Church Road 6","BS1 6AF","Brighton"],["Anne Hall","Elm Drive 3","YO1 7AG","Bristol"],["Emily Ford","River Road 4","BS2 8AH","Brighton"],["Laura Miles","Valley Road 3","CB3 6AO","Cambridge"],["George Hunt","Birch Way 24","YO4 3AL","Bristol"],["Susan Blair","Birch Way 2","YO3 2AK","Bristol"],["Robert Stone","Lake Drive 1","YO2 9AI","Bristol"],["Alice Cole","King Street 44","OX3 7AP","Oxford"],["Jane Palmer","Harbour Lane 15b","OX4 8AQ","Oxford"],["David Wood","School Lane 1","BA5 2AT","York"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Retrieve the number of course instances each student has participated in! Show the student's person_id, the student's name, and the count!","display_sequence":"A","result":{"columns":["person_id","name","count"],"values":[["EN-001","James Smith",0],["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-008","Emily Ford",5],["EN-009","Robert Stone",4],["EN-010","David Wood",5],["EN-011","Susan Blair",6],["EN-012","George Hunt",4],["EN-013","Peter Grant",6],["EN-014","Jane Bell",3],["EN-015","Laura Miles",5],["EN-016","Alice Cole",3],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-019","Jane Bell",3],["EN-020","David Wood",1],["EN-021","John Clark",1]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-006","John Clark",4],["EN-007","Anne Hall",4],["EN-008","Emily Ford",5],["EN-009","Robert Stone",4],["EN-010","David Wood",5],["EN-011","Susan Blair",6],["EN-012","George Hunt",4],["EN-013","Peter Grant",6],["EN-014","Jane Bell",3],["EN-015","Laura Miles",5],["EN-016","Alice Cole",3],["EN-017","Jane Palmer",3],["EN-018","William White",1],["EN-019","Jane Bell",3],["EN-020","David Wood",1],["EN-021","John Clark",1]]}]},{"id":63,"description":"Retrieve the number of course instances each room has been used for! Show the room's name, the room's capacity, and the count!","display_sequence":"B","result":{"columns":["name","capacity","count"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturn",24,3]]},"alternative_results":[{"columns":["name","capacity","count"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturn",24,3]]}]},{"id":64,"description":"Retrieve the number of course instances each course has had! Show the course's code, the course's name, and the count!","display_sequence":"C","result":{"columns":["course_code","name","count"],"values":[["DBM1","Database Methodology",4],["Java1","Java, Basic Course",5],["Java2","Java, Advanced Course",3],["LDD","Logical Database Design",3],["LOG1","Logic",3],["PDB","Physical Database Design",1]]},"alternative_results":[{"columns":["course_code","name","count"],"values":[["DBM1","Database Methodology",4],["Java1","Java, Basic Course",5],["Java2","Java, Advanced Course",3],["LDD","Logical Database Design",3],["LOG1","Logic",3],["PDB","Physical Database Design",1]]}]},{"id":65,"description":"Retrieve the number of course instances each teacher has held! Show the teacher's person_id, the teacher's name, and the count!","display_sequence":"D","result":{"columns":["person_id","name","count"],"values":[["EN-001","James Smith",0],["EN-002","John Brown",6],["EN-003","William Jones",3],["EN-004","Mary Wilson",4],["EN-005","Sarah Taylor",4],["EN-018","William White",2]]},"alternative_results":[{"columns":["person_id","name","count"],"values":[["EN-002","John Brown",6],["EN-003","William Jones",3],["EN-004","Mary Wilson",4],["EN-005","Sarah Taylor",4],["EN-018","William White",2]]}]},{"id":66,"description":"Retrieve the number of participating students for each course instance! Show the course instance's course_code and course name, the course instance's start_date, and the number of participating students!","display_sequence":"E","result":{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z",4],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z",3],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z",3],["DBM1","Database Methodology","2010-09-22T00:00:00.000Z",4],["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z",6],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z",2],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z",2],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z",3],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z",0],["Java2","Java, Advanced Course","2008-04-16T00:00:00.000Z",4],["Java2","Java, Advanced Course","2009-01-22T00:00:00.000Z",4],["Java2","Java, Advanced Course","2010-04-11T00:00:00.000Z",4],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z",2],["LDD","Logical Database Design","2008-09-02T00:00:00.000Z",3],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z",3],["LOG1","Logic","2008-04-16T00:00:00.000Z",2],["LOG1","Logic","2009-09-17T00:00:00.000Z",2],["LOG1","Logic","2010-05-01T00:00:00.000Z",4],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z",3]]},"alternative_results":[{"columns":["course","name","start_date","count"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z",4],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z",3],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z",3],["DBM1","Database Methodology","2010-09-22T00:00:00.000Z",4],["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z",6],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z",2],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z",2],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z",3],["Java2","Java, Advanced Course","2008-04-16T00:00:00.000Z",4],["Java2","Java, Advanced Course","2009-01-22T00:00:00.000Z",4],["Java2","Java, Advanced Course","2010-04-11T00:00:00.000Z",4],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z",2],["LDD","Logical Database Design","2008-09-02T00:00:00.000Z",3],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z",3],["LOG1","Logic","2008-04-16T00:00:00.000Z",2],["LOG1","Logic","2009-09-17T00:00:00.000Z",2],["LOG1","Logic","2010-05-01T00:00:00.000Z",4],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances each teacher has held! II. Retrieve person_id, name, and phone for the teacher who has held the most course instances!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"]]}},{"id":68,"description":"I. Retrieve person_id, name, and phone as well as the number of course instances per student! II. Retrieve person_id, name, and phone for the student who has participated in the most course instances!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-011","Susan Blair","01234567900"],["EN-013","Peter Grant","01234567902"]]}},{"id":69,"description":"I. Retrieve course_code, name, and duration as well as the number of course instances per course! II. Retrieve course_code, name, and duration for the course that has had the most course instances!","display_sequence":"C","result":{"columns":["course_code","name","duration"],"values":[["Java1","Java, Basic Course",5]]}},{"id":70,"description":"I. Retrieve name and capacity as well as the number of course instances per room! II. Retrieve name and capacity for the room that has been used for the most course instances!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Retrieve course_code, course name, and start_date as well as the number of participants per course instance! II. Retrieve course_code, course name, and start_date for the course instance that has had the most participants!","display_sequence":"E","result":{"columns":["course","name","start_date"],"values":[["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Retrieve person_id, name, and city for students who have participated in at least three DIFFERENT courses!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-006","John Clark","Brighton"],["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-019","Jane Bell","York"]]}},{"id":73,"description":"Retrieve person_id, name, and phone for teachers who have held at least three DIFFERENT courses!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"]]}},{"id":74,"description":"Retrieve person_id, name, and city for teachers who have held course instances in at least three DIFFERENT rooms!","display_sequence":"C","result":{"columns":["person_id","name","city"],"values":[["EN-002","John Brown","Reading"],["EN-003","William Jones","Oxford"],["EN-004","Mary Wilson","Cambridge"]]}},{"id":75,"description":"Retrieve name and capacity for rooms that have been used by at least three DIFFERENT teachers!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturn",24]]}},{"id":76,"description":"Retrieve name and capacity for rooms that have been used for course instances of at least three DIFFERENT courses!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":77,"description":"Retrieve code, name, and price for courses that have been held in at least three DIFFERENT rooms!","display_sequence":"F","result":{"columns":["course_code","name","price"],"values":[["Java1","Java, Basic Course",6700],["LDD","Logical Database Design",6000]]}},{"id":78,"description":"Retrieve code, name, and price for courses that have been held by at least three DIFFERENT teachers!","display_sequence":"G","result":{"columns":["course_code","name","price"],"values":[["DBM1","Database Methodology",2800],["LOG1","Logic",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Retrieve name and city for people who are not teachers!","display_sequence":"A","result":{"columns":["name","city"],"values":[["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Robert Stone","Bristol"],["David Wood","York"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Peter Grant","Bath"],["Jane Bell","York"],["Laura Miles","Cambridge"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["Jane Bell","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":80,"description":"Retrieve name and city for students who did not participate in any course instance with a start date during 2010!","display_sequence":"B","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Jane Bell","York"],["William White","York"],["Jane Bell","York"]]}},{"id":81,"description":"Retrieve name and city for students who have not taken the course with code Java1!","display_sequence":"C","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["Robert Stone","Bristol"],["David Wood","York"],["Alice Cole","Oxford"],["Jane Palmer","Oxford"],["William White","York"],["David Wood","York"],["John Clark","Cambridge"]]}},{"id":82,"description":"Retrieve name and city for students who have not taken the course with code LOG1!","display_sequence":"D","result":{"columns":["name","city"],"values":[["James Smith","Guildford"],["John Clark","Brighton"],["Anne Hall","Bristol"],["Emily Ford","Brighton"],["Susan Blair","Bristol"],["George Hunt","Bristol"],["Jane Bell","York"],["Laura Miles","Cambridge"],["William White","York"],["Jane Bell","York"],["David Wood","York"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Retrieve person_id, name, office_room, and phone for teachers who have never held a course instance for the course \"Java, Advanced Course\"!","display_sequence":"A","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-001","James Smith",634,"01234567890"],["EN-003","William Jones",603,"01234567892"],["EN-004","Mary Wilson",605,"01234567893"],["EN-005","Sarah Taylor",622,"01234567894"]]}},{"id":84,"description":"Retrieve person_id, name, and city for students with disabilities who have not taken the course \"Logical Database Design\"!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-015","Laura Miles","Cambridge"],["EN-020","David Wood","York"]]}},{"id":85,"description":"Retrieve name and capacity for rooms that have never been used for a course instance of the course \"Logical Database Design\"!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Retrieve name and capacity for rooms that have never been used by the teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Retrieve person_id, name, and phone for students who have taken the course \"Physical Database Design\" or the course \"Logical Database Design\" (or both)!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-008","Emily Ford","01234567897"],["EN-011","Susan Blair","01234567900"],["EN-012","George Hunt","01234567901"],["EN-013","Peter Grant","01234567902"],["EN-016","Alice Cole","01234567905"],["EN-017","Jane Palmer","01234567906"],["EN-018","William White","01234567907"]]}},{"id":88,"description":"Retrieve person_id, name, and city for students who have participated in course instances in room Orion or in room Jupiter (or in both)!","display_sequence":"B","result":{"columns":["person_id","name","city"],"values":[["EN-007","Anne Hall","Bristol"],["EN-008","Emily Ford","Brighton"],["EN-009","Robert Stone","Bristol"],["EN-010","David Wood","York"],["EN-011","Susan Blair","Bristol"],["EN-012","George Hunt","Bristol"],["EN-013","Peter Grant","Bath"],["EN-014","Jane Bell","York"],["EN-015","Laura Miles","Cambridge"],["EN-016","Alice Cole","Oxford"],["EN-017","Jane Palmer","Oxford"],["EN-018","William White","York"],["EN-019","Jane Bell","York"],["EN-021","John Clark","Cambridge"]]}},{"id":89,"description":"Retrieve person_id, name, and phone for teachers who have held the course \"Logic\" or the course \"Database Methodology\" (or both)!","display_sequence":"C","result":{"columns":["person_id","name","phone"],"values":[["EN-002","John Brown","01234567891"],["EN-003","William Jones","01234567892"],["EN-004","Mary Wilson","01234567893"],["EN-005","Sarah Taylor","01234567894"],["EN-018","William White","01234567907"]]}},{"id":90,"description":"Retrieve name and capacity for rooms that have been used by teacher John Brown or by teacher William Jones (or by both)!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Saturn",24],["Tellus",32]]}},{"id":91,"description":"Retrieve name and capacity for rooms that have been used for the course \"Logic\" or for the course \"Java, Advanced Course\" (or for both)!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Retrieve person_id, name, and city for students who have taken both the course \"Physical Database Design\" and the course \"Logical Database Design\"!","display_sequence":"A","result":{"columns":["person_id","name","city"],"values":[["EN-011","Susan Blair","Bristol"],["EN-013","Peter Grant","Bath"]]}},{"id":93,"description":"Retrieve person_id, name, and phone for students who have participated in course instances in both room Orion and room Jupiter!","display_sequence":"B","result":{"columns":["person_id","name","phone"],"values":[["EN-007","Anne Hall","01234567896"],["EN-010","David Wood","01234567899"],["EN-011","Susan Blair","01234567900"],["EN-013","Peter Grant","01234567902"],["EN-019","Jane Bell","01234567908"]]}},{"id":94,"description":"Retrieve person_id, name, and office_room for teachers who have held both the course \"Logical Database Design\" and the course \"Database Methodology\"!","display_sequence":"C","result":{"columns":["person_id","name","office_room"],"values":[["EN-004","Mary Wilson",605],["EN-005","Sarah Taylor",622]]}},{"id":95,"description":"Retrieve name and capacity for rooms that have been used by both teacher Mary Wilson and teacher John Brown!","display_sequence":"D","result":{"columns":["name","capacity"],"values":[["Jupiter",12],["Orion",24],["Saturn",24]]}},{"id":96,"description":"Retrieve name and capacity for rooms that have been used for both the course \"Logic\" and the course \"Java, Basic Course\"!","display_sequence":"E","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":97,"description":"Retrieve person_id, name, office_room, and phone for teachers who have held course instances in both room Jupiter and room Sirius!","display_sequence":"F","result":{"columns":["person_id","name","office_room","phone"],"values":[["EN-004","Mary Wilson",605,"01234567893"],["EN-005","Sarah Taylor",622,"01234567894"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Retrieve person_id, name, and phone for students who have participated in course instances led by all teachers from Oxford!","display_sequence":"A","result":{"columns":["person_id","name","phone"],"values":[["EN-006","John Clark","01234567895"],["EN-010","David Wood","01234567899"],["EN-012","George Hunt","01234567901"],["EN-009","Robert Stone","01234567898"]]}},{"id":99,"description":"Retrieve name and capacity for rooms that have been used by all teachers from Oxford!","display_sequence":"B","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":100,"description":"Retrieve name and capacity for rooms that have been used for all courses that cost under 5000!","display_sequence":"C","result":{"columns":["name","capacity"],"values":[["Jupiter",12]]}},{"id":101,"description":"Retrieve person_id, name, and phone for teachers who have held course instances of all courses of at most three weeks!","display_sequence":"D","result":{"columns":["person_id","name","phone"],"values":[["EN-005","Sarah Taylor","01234567894"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Retrieve the number of students from Bristol for each course instance! Show course_code, start_date, and the number of students! Course instances without students from Bristol should also be shown!","display_sequence":"A","result":{"columns":["course","start_date","count"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDD","2008-05-06T00:00:00.000Z",1],["LDD","2008-09-02T00:00:00.000Z",1],["LDD","2010-09-24T00:00:00.000Z",0],["LOG1","2008-04-16T00:00:00.000Z",1],["LOG1","2009-09-17T00:00:00.000Z",1],["LOG1","2010-05-01T00:00:00.000Z",0],["PDB","2008-05-09T00:00:00.000Z",1]]}},{"id":103,"description":"Retrieve the number of times each student has participated in the course \"Logical Database Design\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"B","result":{"columns":["person_id","name","city","count"],"values":[["EN-001","James Smith","Guildford",0],["EN-006","John Clark","Brighton",1],["EN-007","Anne Hall","Bristol",0],["EN-008","Emily Ford","Brighton",0],["EN-009","Robert Stone","Bristol",0],["EN-010","David Wood","York",0],["EN-011","Susan Blair","Bristol",1],["EN-012","George Hunt","Bristol",1],["EN-013","Peter Grant","Bath",2],["EN-014","Jane Bell","York",0],["EN-015","Laura Miles","Cambridge",0],["EN-016","Alice Cole","Oxford",1],["EN-017","Jane Palmer","Oxford",1],["EN-018","William White","York",1],["EN-019","Jane Bell","York",0],["EN-020","David Wood","York",0],["EN-021","John Clark","Cambridge",0]]}},{"id":104,"description":"Retrieve the number of times each student has participated in the course \"Java, Basic Course\"! Show the student's person_id, name, and city as well as the count! Students who have not participated in the course should also be shown!","display_sequence":"C","result":{"columns":["person_id","name","city","count"],"values":[["EN-001","James Smith","Guildford",0],["EN-006","John Clark","Brighton",2],["EN-007","Anne Hall","Bristol",1],["EN-008","Emily Ford","Brighton",1],["EN-009","Robert Stone","Bristol",0],["EN-010","David Wood","York",0],["EN-011","Susan Blair","Bristol",2],["EN-012","George Hunt","Bristol",1],["EN-013","Peter Grant","Bath",2],["EN-014","Jane Bell","York",2],["EN-015","Laura Miles","Cambridge",1],["EN-016","Alice Cole","Oxford",0],["EN-017","Jane Palmer","Oxford",0],["EN-018","William White","York",0],["EN-019","Jane Bell","York",1],["EN-020","David Wood","York",0],["EN-021","John Clark","Cambridge",0]]}},{"id":105,"description":"Retrieve the number of times each teacher has held the course \"Java, Basic Course\"! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held the course should also be shown!","display_sequence":"D","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-001","James Smith","01234567890",634,0],["EN-002","John Brown","01234567891",604,3],["EN-003","William Jones","01234567892",603,2],["EN-004","Mary Wilson","01234567893",605,0],["EN-005","Sarah Taylor","01234567894",622,0],["EN-018","William White","01234567907",558,0]]}},{"id":106,"description":"Retrieve the number of course instances each teacher has held with a start date during the year 2010! Show the teacher's person_id, name, phone, and office_room as well as the count! Teachers who have not held course instances during 2010 should also be shown!","display_sequence":"E","result":{"columns":["person_id","name","phone","office_room","count"],"values":[["EN-001","James Smith","01234567890",634,0],["EN-002","John Brown","01234567891",604,1],["EN-003","William Jones","01234567892",603,1],["EN-004","Mary Wilson","01234567893",605,2],["EN-005","Sarah Taylor","01234567894",622,0],["EN-018","William White","01234567907",558,2]]}},{"id":107,"description":"Retrieve the number of course instances with a start date during the year 2008 for each student! Show the student's person_id, name, phone, and city as well as the count! Students who have not participated in course instances during 2008 should also be shown!","display_sequence":"F","result":{"columns":["person_id","name","phone","city","count"],"values":[["EN-001","James Smith","01234567890","Guildford",0],["EN-006","John Clark","01234567895","Brighton",4],["EN-007","Anne Hall","01234567896","Bristol",3],["EN-008","Emily Ford","01234567897","Brighton",3],["EN-009","Robert Stone","01234567898","Bristol",1],["EN-010","David Wood","01234567899","York",2],["EN-011","Susan Blair","01234567900","Bristol",4],["EN-012","George Hunt","01234567901","Bristol",2],["EN-013","Peter Grant","01234567902","Bath",3],["EN-014","Jane Bell","01234567903","York",2],["EN-015","Laura Miles","01234567904","Cambridge",2],["EN-016","Alice Cole","01234567905","Oxford",0],["EN-017","Jane Palmer","01234567906","Oxford",0],["EN-018","William White","01234567907","York",1],["EN-019","Jane Bell","01234567908","York",1],["EN-020","David Wood","01234567909","York",0],["EN-021","John Clark","01234567910","Cambridge",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Retrieve information about course instances in which no student from York has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"A","result":{"columns":["course","name","start_date","name","name"],"values":[["DBM1","Database Methodology","2008-04-02T00:00:00.000Z","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-05-06T00:00:00.000Z","Jupiter","John Brown"],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z","Sirius","Sarah Taylor"],["PDB","Physical Database Design","2008-05-09T00:00:00.000Z","Jupiter","Mary Wilson"],["LOG1","Logic","2009-09-17T00:00:00.000Z","Jupiter","Sarah Taylor"],["DBM1","Database Methodology","2010-02-15T00:00:00.000Z","Sirius","Mary Wilson"],["Java1","Java, Basic Course","2010-05-01T00:00:00.000Z","Saturn","William Jones"],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}},{"id":109,"description":"Retrieve information about course instances in which no student from Bristol has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"B","result":{"columns":["course","name","start_date","name","name"],"values":[["Java1","Java, Basic Course","2008-03-06T00:00:00.000Z","Tellus","John Brown"],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01T00:00:00.000Z","Jupiter","John Brown"],["LDD","Logical Database Design","2010-09-24T00:00:00.000Z","Saturn","Mary Wilson"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}},{"id":110,"description":"Retrieve information about course instances in which no student with a disability has participated! Show course_code, course name, start_date, room name, and teacher name!","display_sequence":"C","result":{"columns":["course","name","start_date","name","name"],"values":[["LOG1","Logic","2008-04-16T00:00:00.000Z","Jupiter","William Jones"],["LDD","Logical Database Design","2008-05-06T00:00:00.000Z","Sirius","Sarah Taylor"],["Java1","Java, Basic Course","2008-09-02T00:00:00.000Z","Tellus","William Jones"],["DBM1","Database Methodology","2009-01-28T00:00:00.000Z","Jupiter","Sarah Taylor"],["LOG1","Logic","2010-05-01T00:00:00.000Z","Jupiter","John Brown"],["Java1","Java, Basic Course","2011-05-01T00:00:00.000Z","Saturn","John Brown"]]}}]}]} \ No newline at end of file diff --git a/public/languages/sv-pg/data.sql b/public/languages/sv-pg/data.sql new file mode 100644 index 0000000..b29e12e --- /dev/null +++ b/public/languages/sv-pg/data.sql @@ -0,0 +1,141 @@ +CREATE TABLE Person (personnummer TEXT NOT NULL, namn TEXT NOT NULL, adress TEXT NOT NULL, postnr TEXT NOT NULL, ort TEXT NOT NULL, telefon TEXT NOT NULL, PRIMARY KEY (personnummer)); +CREATE TABLE Rum (id INTEGER NOT NULL, namn TEXT NOT NULL, antalplatser INTEGER NOT NULL, PRIMARY KEY (id)); +CREATE UNIQUE INDEX rum_namn ON Rum (namn); +CREATE TABLE Student (personnummer TEXT NOT NULL, funktionshindrad BOOLEAN NOT NULL, CONSTRAINT STUDENT_PK PRIMARY KEY (personnummer), CONSTRAINT Student_Person_FK FOREIGN KEY (personnummer) REFERENCES Person (personnummer) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Lärare (personnummer TEXT NOT NULL, tjänsterum INTEGER NOT NULL, CONSTRAINT teacher_pk PRIMARY KEY (personnummer), CONSTRAINT fk_teacher_person FOREIGN KEY (personnummer) REFERENCES Person (personnummer) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Kurs (kurskod TEXT NOT NULL, namn TEXT NOT NULL, längd INTEGER NOT NULL, pris INTEGER NOT NULL, beskrivning TEXT NOT NULL, PRIMARY KEY (kurskod)); +CREATE UNIQUE INDEX kurs_ben ON Kurs (namn); +CREATE TABLE Kurstillfälle (kurs TEXT NOT NULL, startdatum DATE NOT NULL, lärare TEXT NOT NULL, rum INTEGER NOT NULL, CONSTRAINT courseinstance_pk PRIMARY KEY (kurs, startdatum), CONSTRAINT fk_courseinstance_course FOREIGN KEY (kurs) REFERENCES Kurs (kurskod) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_teacher FOREIGN KEY (lärare) REFERENCES Lärare (personnummer) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_room FOREIGN KEY (rum) REFERENCES Rum (id) ON DELETE RESTRICT ON UPDATE CASCADE); +CREATE TABLE Deltagande (student TEXT NOT NULL, kurs TEXT NOT NULL, startdatum DATE NOT NULL, CONSTRAINT participation_pk PRIMARY KEY (kurs, startdatum, student), CONSTRAINT fk_participation_courseinstance FOREIGN KEY (kurs, startdatum) REFERENCES Kurstillfälle (kurs, startdatum) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_participation_student FOREIGN KEY (student) REFERENCES Student (personnummer) ON DELETE RESTRICT ON UPDATE CASCADE); +INSERT INTO Person VALUES ('111017-0001', 'Anders Ödman', 'Centralvägen 1', '19122', 'Sollentuna', '151576'); +INSERT INTO Person VALUES ('111017-0002', 'Bo Åkerman', 'Villagatan 2', '18491', 'Åkersberga', '151526'); +INSERT INTO Person VALUES ('111017-0003', 'Carl Nordin', 'Dalgatan 3', '15106', 'Södertälje', '151553'); +INSERT INTO Person VALUES ('111017-0004', 'Lena Svensson', 'Nygatan 4', '18754', 'Täby', '151556'); +INSERT INTO Person VALUES ('111017-0005', 'Sofia Wilsson', 'Björkgatan 5', '15136', 'Södertälje', '151585'); +INSERT INTO Person VALUES ('121017-0001', 'Bo Dahl', 'Ahlgatan 6', '16102', 'Bromma', '163578'); +INSERT INTO Person VALUES ('121017-0002', 'Ann Stål', 'Lindvägen 3', '16429', 'Kista', '373789'); +INSERT INTO Person VALUES ('121017-0003', 'Ebba Ryd', 'Ankvägen 4', '16107', 'Bromma', '325305'); +INSERT INTO Person VALUES ('121017-0004', 'Robert Ahl', 'Ekvägen 1', '16425', 'Kista', '123435'); +INSERT INTO Person VALUES ('121017-0005', 'Lars Holm', 'Skolgatan 3', '16966', 'Solna', '203045'); +INSERT INTO Person VALUES ('121017-0006', 'Siw Björk', 'Bokvägen 2', '16431', 'Kista', '452678'); +INSERT INTO Person VALUES ('121017-0007', 'Sigge Ehn', 'Bokvägen 24', '16429', 'Kista', '245578'); +INSERT INTO Person VALUES ('121017-0008', 'Kurt Grahn', 'Byvägen 112', '19735', 'Bro', '192292'); +INSERT INTO Person VALUES ('121017-0009', 'Eva Jung', 'Storgatan 5', '16966', 'Solna', '131187'); +INSERT INTO Person VALUES ('121017-0010', 'Lola Frid', 'Lillgatan 3', '18754', 'Täby', '723384'); +INSERT INTO Person VALUES ('121018-0040', 'Britt Maj', 'Karlvägen 44', '15106', 'Södertälje', '982355'); +INSERT INTO Person VALUES ('121117-0041', 'Eva Berglund', 'Hamngatan 15b', '15107', 'Södertälje', '774355'); +INSERT INTO Person VALUES ('131017-0050', 'Carl Nilsson', 'Strogatan 4', '16966', 'Solna', '332356'); +INSERT INTO Person VALUES ('131017-0051', 'Eva Jung', 'Skolgatan 12', '16966', 'Solna', '449867'); +INSERT INTO Person VALUES ('131017-0052', 'Lars Holm', 'Skolgatan 1', '16966', 'Solna', '665844'); +INSERT INTO Person VALUES ('131017-0053', 'Bo Dahl', 'Nygatan 63', '18753', 'Täby', '770691'); +INSERT INTO Rum VALUES (1, 'Jupiter', 12); +INSERT INTO Rum VALUES (2, 'Orion', 24); +INSERT INTO Rum VALUES (3, 'Sirius', 16); +INSERT INTO Rum VALUES (4, 'Tellus', 32); +INSERT INTO Rum VALUES (5, 'Saturnus', 24); +INSERT INTO Student VALUES ('111017-0001', FALSE); +INSERT INTO Student VALUES ('121017-0001', FALSE); +INSERT INTO Student VALUES ('121017-0002', TRUE); +INSERT INTO Student VALUES ('121017-0003', FALSE); +INSERT INTO Student VALUES ('121017-0004', FALSE); +INSERT INTO Student VALUES ('121017-0005', FALSE); +INSERT INTO Student VALUES ('121017-0006', TRUE); +INSERT INTO Student VALUES ('121017-0007', FALSE); +INSERT INTO Student VALUES ('121017-0008', FALSE); +INSERT INTO Student VALUES ('121017-0009', FALSE); +INSERT INTO Student VALUES ('121017-0010', TRUE); +INSERT INTO Student VALUES ('121018-0040', FALSE); +INSERT INTO Student VALUES ('121117-0041', TRUE); +INSERT INTO Student VALUES ('131017-0050', FALSE); +INSERT INTO Student VALUES ('131017-0051', FALSE); +INSERT INTO Student VALUES ('131017-0052', TRUE); +INSERT INTO Student VALUES ('131017-0053', FALSE); +INSERT INTO Lärare VALUES ('111017-0001', 634); +INSERT INTO Lärare VALUES ('111017-0002', 604); +INSERT INTO Lärare VALUES ('111017-0003', 603); +INSERT INTO Lärare VALUES ('111017-0004', 605); +INSERT INTO Lärare VALUES ('111017-0005', 622); +INSERT INTO Lärare VALUES ('131017-0050', 558); +INSERT INTO Kurs VALUES ('DBM1', 'Databasmetodik', 2, 2800, 'DB-grunder, normalisering, modellering, SQL'); +INSERT INTO Kurs VALUES ('FDBD', 'Fysisk databasdesign', 5, 7200, 'Lagringsstrukturer, index, denormalisering'); +INSERT INTO Kurs VALUES ('Java1', 'Java, grundkurs', 5, 6700, 'Grundläggande programmering med Java'); +INSERT INTO Kurs VALUES ('Java2', 'Java, fortsättningskurs', 4, 6000, 'Avancerad programmering med Java'); +INSERT INTO Kurs VALUES ('LDBD', 'Logisk databasdesign', 4, 6000, 'Avancerad design, analysmönster, metamodellering'); +INSERT INTO Kurs VALUES ('Log1', 'Logik', 3, 4500, 'Första ordnings logik, predikatlogik, satslogik'); +INSERT INTO Kurstillfälle VALUES ('Java1', '2008-03-06T00:00:00.000Z', '111017-0002', 4); +INSERT INTO Kurstillfälle VALUES ('DBM1', '2008-04-02T00:00:00.000Z', '111017-0005', 3); +INSERT INTO Kurstillfälle VALUES ('Java2', '2008-04-16T00:00:00.000Z', '111017-0002', 2); +INSERT INTO Kurstillfälle VALUES ('Log1', '2008-04-16T00:00:00.000Z', '111017-0003', 1); +INSERT INTO Kurstillfälle VALUES ('Java1', '2008-05-06T00:00:00.000Z', '111017-0002', 1); +INSERT INTO Kurstillfälle VALUES ('LDBD', '2008-05-06T00:00:00.000Z', '111017-0005', 3); +INSERT INTO Kurstillfälle VALUES ('FDBD', '2008-05-09T00:00:00.000Z', '111017-0004', 1); +INSERT INTO Kurstillfälle VALUES ('Java1', '2008-09-02T00:00:00.000Z', '111017-0003', 4); +INSERT INTO Kurstillfälle VALUES ('LDBD', '2008-09-02T00:00:00.000Z', '111017-0004', 2); +INSERT INTO Kurstillfälle VALUES ('Java2', '2009-01-22T00:00:00.000Z', '111017-0002', 2); +INSERT INTO Kurstillfälle VALUES ('DBM1', '2009-01-28T00:00:00.000Z', '111017-0005', 1); +INSERT INTO Kurstillfälle VALUES ('Log1', '2009-09-17T00:00:00.000Z', '111017-0005', 1); +INSERT INTO Kurstillfälle VALUES ('DBM1', '2010-02-15T00:00:00.000Z', '111017-0004', 3); +INSERT INTO Kurstillfälle VALUES ('Java2', '2010-04-11T00:00:00.000Z', '131017-0050', 4); +INSERT INTO Kurstillfälle VALUES ('Java1', '2010-05-01T00:00:00.000Z', '111017-0003', 5); +INSERT INTO Kurstillfälle VALUES ('Log1', '2010-05-01T00:00:00.000Z', '111017-0002', 1); +INSERT INTO Kurstillfälle VALUES ('DBM1', '2010-09-22T00:00:00.000Z', '131017-0050', 3); +INSERT INTO Kurstillfälle VALUES ('LDBD', '2010-09-24T00:00:00.000Z', '111017-0004', 5); +INSERT INTO Kurstillfälle VALUES ('Java1', '2011-05-01T00:00:00.000Z', '111017-0002', 5); +INSERT INTO Deltagande VALUES ('121017-0001', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0003', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0009', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0010', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0051', 'Java1', '2008-03-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0001', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0002', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0003', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0010', 'DBM1', '2008-04-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0002', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0005', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0007', 'Java2', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0004', 'Log1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0005', 'Log1', '2008-04-16T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0002', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'Java1', '2008-05-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0001', 'LDBD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0007', 'LDBD', '2008-05-06T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0003', 'FDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'FDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'FDBD', '2008-05-09T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0001', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0009', 'Java1', '2008-09-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0050', 'LDBD', '2008-09-02T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0002', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0009', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0010', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0051', 'Java2', '2009-01-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0003', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0005', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0051', 'DBM1', '2009-01-28T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0004', 'Log1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121117-0041', 'Log1', '2009-09-17T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0003', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0010', 'DBM1', '2010-02-15T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0004', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0005', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0007', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0010', 'Java2', '2010-04-11T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0006', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0007', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'Java1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0005', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121018-0040', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0053', 'Log1', '2010-05-01T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0004', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121018-0040', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121117-0041', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('131017-0052', 'DBM1', '2010-09-22T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121017-0008', 'LDBD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121018-0040', 'LDBD', '2010-09-24T00:00:00.000Z'); +INSERT INTO Deltagande VALUES ('121117-0041', 'LDBD', '2010-09-24T00:00:00.000Z'); \ No newline at end of file diff --git a/public/languages/sv-pg/db_layout_dark.svg b/public/languages/sv-pg/db_layout_dark.svg new file mode 100644 index 0000000..5cf62b5 --- /dev/null +++ b/public/languages/sv-pg/db_layout_dark.svg @@ -0,0 +1,263 @@ + + + + +SQLiteLayout + + +deltagande + + + +deltagande + + +student +      +TEXT + + +kurs +         +TEXT + + +startdatum +   +DATE + + +    kurs, kurs, startdatum, startdatum     + + + + +kurstillfälle + + + +kurstillfälle + + +kurs +         +TEXT + + +startdatum +   +DATE + + +lärare +       +TEXT + + +rum +          +INTEGER + + +    kurs, startdatum, kurs, startdatum     + + + + +deltagande:f4->kurstillfälle:f15 + + +1 + + + + +student + + + +student + + +personnummer +       +TEXT + + +funktionshindrad +   +BOOLEAN + + + + +deltagande:f1->student:f28 + + +1 + + + + +kurs + + + +kurs + + +kurskod +       +TEXT + + +namn +          +TEXT + + +längd +         +INTEGER + + +pris +          +INTEGER + + +beskrivning +   +TEXT + + +    namn (INDEX, UNIQUE)     + + + + +kurstillfälle:f11->kurs:f5 + + +1 + + + + +lärare + + + +lärare + + +personnummer +   +TEXT + + +tjänsterum +     +INTEGER + + + + +kurstillfälle:f13->lärare:f16 + + +1 + + + + +rum + + + +rum + + +id +             +INTEGER + + +namn +           +TEXT + + +antalplatser +   +INTEGER + + +    namn (INDEX, UNIQUE)     + + + + +kurstillfälle:f14->rum:f24 + + +1 + + + + +person + + + +person + + +personnummer +   +TEXT + + +namn +           +TEXT + + +adress +         +TEXT + + +postnr +         +TEXT + + +ort +            +TEXT + + +telefon +        +TEXT + + + + +lärare:f16->person:f18 + + +1 +1 + + + +student:f28->person:f18 + + +1 +1 + + + \ No newline at end of file diff --git a/public/languages/sv-pg/db_layout_light.svg b/public/languages/sv-pg/db_layout_light.svg new file mode 100644 index 0000000..2ca71d9 --- /dev/null +++ b/public/languages/sv-pg/db_layout_light.svg @@ -0,0 +1,263 @@ + + + + +SQLiteLayout + + +deltagande + + + +deltagande + + +student +      +TEXT + + +kurs +         +TEXT + + +startdatum +   +DATE + + +    kurs, kurs, startdatum, startdatum     + + + + +kurstillfälle + + + +kurstillfälle + + +kurs +         +TEXT + + +startdatum +   +DATE + + +lärare +       +TEXT + + +rum +          +INTEGER + + +    kurs, startdatum, kurs, startdatum     + + + + +deltagande:f4->kurstillfälle:f15 + + +1 + + + + +student + + + +student + + +personnummer +       +TEXT + + +funktionshindrad +   +BOOLEAN + + + + +deltagande:f1->student:f28 + + +1 + + + + +kurs + + + +kurs + + +kurskod +       +TEXT + + +namn +          +TEXT + + +längd +         +INTEGER + + +pris +          +INTEGER + + +beskrivning +   +TEXT + + +    namn (INDEX, UNIQUE)     + + + + +kurstillfälle:f11->kurs:f5 + + +1 + + + + +lärare + + + +lärare + + +personnummer +   +TEXT + + +tjänsterum +     +INTEGER + + + + +kurstillfälle:f13->lärare:f16 + + +1 + + + + +rum + + + +rum + + +id +             +INTEGER + + +namn +           +TEXT + + +antalplatser +   +INTEGER + + +    namn (INDEX, UNIQUE)     + + + + +kurstillfälle:f14->rum:f24 + + +1 + + + + +person + + + +person + + +personnummer +   +TEXT + + +namn +           +TEXT + + +adress +         +TEXT + + +postnr +         +TEXT + + +ort +            +TEXT + + +telefon +        +TEXT + + + + +lärare:f16->person:f18 + + +1 +1 + + + +student:f28->person:f18 + + +1 +1 + + + \ No newline at end of file diff --git a/public/languages/sv-pg/questionpool.json b/public/languages/sv-pg/questionpool.json new file mode 100644 index 0000000..109eab0 --- /dev/null +++ b/public/languages/sv-pg/questionpool.json @@ -0,0 +1 @@ +{"language":"sv","engine":"postgresql","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Solna!","display_sequence":"A","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0005","Lars Holm","Skolgatan 3","16966"],["121017-0009","Eva Jung","Storgatan 5","16966"],["131017-0050","Carl Nilsson","Strogatan 4","16966"],["131017-0051","Eva Jung","Skolgatan 12","16966"],["131017-0052","Lars Holm","Skolgatan 1","16966"]]}},{"id":2,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":3,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Kista!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0002","Ann Stål","Lindvägen 3","16429"],["121017-0004","Robert Ahl","Ekvägen 1","16425"],["121017-0006","Siw Björk","Bokvägen 2","16431"],["121017-0007","Sigge Ehn","Bokvägen 24","16429"]]}},{"id":4,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":5,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Solna!","display_sequence":"E","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Lars Holm","Skolgatan 3","16966","203045"],["Eva Jung","Storgatan 5","16966","131187"],["Carl Nilsson","Strogatan 4","16966","332356"],["Eva Jung","Skolgatan 12","16966","449867"],["Lars Holm","Skolgatan 1","16966","665844"]]}},{"id":6,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Kista!","display_sequence":"F","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Ann Stål","Lindvägen 3","16429","373789"],["Robert Ahl","Ekvägen 1","16425","123435"],["Siw Björk","Bokvägen 2","16431","452678"],["Sigge Ehn","Bokvägen 24","16429","245578"]]}},{"id":7,"description":"Ta fram kurskod, namn och pris på kurser på 3 veckor!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Ta fram kurskod, namn och pris på kurser på 4 veckor!","display_sequence":"H","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Kista!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0009","Eva Jung","Solna"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"]]}},{"id":10,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna eller i Bromma!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":11,"description":"Ta fram personnummer, namn och ort på personer som bor i Kista eller i Täby!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0053","Bo Dahl","Täby"]]}},{"id":12,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista eller i Bromma!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0002","Ann Stål","373789"],["121017-0003","Ebba Ryd","325305"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":13,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Täby!","display_sequence":"E","result":{"columns":["namn","adress","postnr","ort"],"values":[["Lena Svensson","Nygatan 4","18754","Täby"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"],["Bo Dahl","Nygatan 63","18753","Täby"]]}},{"id":14,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Kista eller i Solna!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Lars Holm","Skolgatan 3","16966","Solna"],["Siw Björk","Bokvägen 2","16431","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Eva Jung","Storgatan 5","16966","Solna"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":15,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Bromma!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0004","Lena Svensson","151556"],["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0010","Lola Frid","723384"],["131017-0053","Bo Dahl","770691"]]}},{"id":16,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Täby!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0005","Lars Holm","Solna"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":17,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Södertälje!","display_sequence":"I","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["121017-0010","Lola Frid","723384"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0053","Bo Dahl","770691"]]}},{"id":18,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Södertälje!","display_sequence":"J","result":{"columns":["namn","adress","postnr","ort"],"values":[["Carl Nordin","Dalgatan 3","15106","Södertälje"],["Sofia Wilsson","Björkgatan 5","15136","Södertälje"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":19,"description":"Ta fram kurskod, namn och pris på kurser på 3 eller 4 veckor!","display_sequence":"K","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0003"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["lärare"],"values":[["111017-0004"],["111017-0005"],["131017-0050"]]}},{"id":23,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["lärare"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["lärare"],"values":[["111017-0004"],["111017-0005"],["131017-0050"]]}},{"id":26,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["lärare"],"values":[["111017-0004"],["111017-0005"]]}},{"id":27,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0006"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":28,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0010"],["121018-0040"],["121117-0041"],["131017-0051"],["131017-0052"]]}},{"id":29,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["121017-0002"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":30,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod LDBD!","display_sequence":"K","result":{"columns":["student"],"values":[["121017-0001"],["121017-0006"],["121017-0007"],["121017-0008"],["121018-0040"],["121117-0041"],["131017-0050"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":32,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0004","Lena Svensson","Täby"]]}},{"id":33,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0004","Lena Svensson","Nygatan 4","18754"],["111017-0005","Sofia Wilsson","Björkgatan 5","15136"],["131017-0050","Carl Nilsson","Strogatan 4","16966"]]}},{"id":34,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"]]}},{"id":35,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["131017-0050","Carl Nilsson","Solna"]]}},{"id":36,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Carl Nilsson","Strogatan 4","16966","Solna"],["Lena Svensson","Nygatan 4","18754","Täby"],["Sofia Wilsson","Björkgatan 5","15136","Södertälje"]]}},{"id":37,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":38,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 1!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0003","Carl Nordin","Södertälje"],["111017-0004","Lena Svensson","Täby"],["111017-0005","Sofia Wilsson","Södertälje"]]}},{"id":39,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"I","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0002","Bo Åkerman","Villagatan 2","18491"],["111017-0004","Lena Svensson","Nygatan 4","18754"]]}},{"id":40,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java2!","display_sequence":"J","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["131017-0050","Carl Nilsson","332356"]]}},{"id":41,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"K","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["111017-0005","Sofia Wilsson","Södertälje"]]}},{"id":42,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod Java1!","display_sequence":"L","result":{"columns":["namn","adress","postnr","ort"],"values":[["Bo Åkerman","Villagatan 2","18491","Åkersberga"],["Carl Nordin","Dalgatan 3","15106","Södertälje"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0003","Carl Nordin",603],["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}},{"id":44,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0004","Lena Svensson",605]]}},{"id":45,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622],["131017-0050","Carl Nilsson",558]]}},{"id":46,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0003","Carl Nordin",603]]}},{"id":47,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["131017-0050","Carl Nilsson",558]]}},{"id":48,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622],["131017-0050","Carl Nilsson",558]]}},{"id":49,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["121017-0002"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0006"],["121017-0008"],["121018-0040"],["121117-0041"],["131017-0051"],["131017-0053"]]}},{"id":51,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0050"],["131017-0051"]]}},{"id":52,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["121017-0001"],["121017-0003"],["121017-0004"],["121017-0005"],["121017-0007"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":53,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0004"],["121017-0006"],["121017-0007"],["121017-0010"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0003","Ebba Ryd","325305"],["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0051","Eva Jung","449867"],["131017-0053","Bo Dahl","770691"]]}},{"id":55,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"]]}},{"id":56,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"],["121017-0008","Kurt Grahn","192292"],["121017-0009","Eva Jung","131187"],["121017-0010","Lola Frid","723384"],["131017-0051","Eva Jung","449867"]]}},{"id":57,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0052","Lars Holm","Solna"]]}},{"id":58,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"E","result":{"columns":["namn","adress","ort","telefon"],"values":[["Ann Stål","Lindvägen 3","Kista","373789"],["Bo Dahl","Nygatan 63","Täby","770691"],["Britt Maj","Karlvägen 44","Södertälje","982355"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Eva Berglund","Hamngatan 15b","Södertälje","774355"],["Eva Jung","Skolgatan 12","Solna","449867"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Lars Holm","Skolgatan 3","Solna","203045"],["Robert Ahl","Ekvägen 1","Kista","123435"],["Siw Björk","Bokvägen 2","Kista","452678"]]}},{"id":59,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Kurt Grahn","Byvägen 112","19735","Bro"],["Lars Holm","Skolgatan 3","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Siw Björk","Bokvägen 2","16431","Kista"]]}},{"id":60,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"G","result":{"columns":["namn","adress","ort","telefon"],"values":[["Bo Dahl","Ahlgatan 6","Bromma","163578"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Eva Jung","Skolgatan 12","Solna","449867"],["Eva Jung","Storgatan 5","Solna","131187"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Lars Holm","Skolgatan 3","Solna","203045"],["Lola Frid","Lillgatan 3","Täby","723384"],["Robert Ahl","Ekvägen 1","Kista","123435"],["Sigge Ehn","Bokvägen 24","Kista","245578"]]}},{"id":61,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"H","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Bo Dahl","Ahlgatan 6","16102","Bromma"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Ebba Ryd","Ankvägen 4","16107","Bromma"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Lars Holm","Skolgatan 1","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Siw Björk","Bokvägen 2","16431","Kista"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Ta fram antal kurstillfällen som varje student har deltagit i! Visa studentens personnummer, studentens namn och antalet!","display_sequence":"A","result":{"columns":["personnummer","namn","count"],"values":[["121017-0006","Siw Björk",6],["121017-0003","Ebba Ryd",5],["121117-0041","Eva Berglund",3],["131017-0053","Bo Dahl",1],["121017-0004","Robert Ahl",4],["131017-0051","Eva Jung",3],["121017-0002","Ann Stål",4],["121017-0001","Bo Dahl",4],["121017-0008","Kurt Grahn",6],["121018-0040","Britt Maj",3],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121017-0005","Lars Holm",5],["131017-0052","Lars Holm",1],["111017-0001","Anders Ödman",0],["121017-0007","Sigge Ehn",4],["131017-0050","Carl Nilsson",1]]},"alternative_results":[{"columns":["personnummer","namn","count"],"values":[["121017-0006","Siw Björk",6],["121017-0003","Ebba Ryd",5],["121117-0041","Eva Berglund",3],["131017-0053","Bo Dahl",1],["121017-0004","Robert Ahl",4],["131017-0051","Eva Jung",3],["121017-0002","Ann Stål",4],["121017-0001","Bo Dahl",4],["121017-0008","Kurt Grahn",6],["121018-0040","Britt Maj",3],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121017-0005","Lars Holm",5],["131017-0052","Lars Holm",1],["121017-0007","Sigge Ehn",4],["131017-0050","Carl Nilsson",1]]}]},{"id":63,"description":"Ta fram antal kurstillfällen som varje rum har använts till! Visa rummets namn, rummets kapacitet och antalet!","display_sequence":"B","result":{"columns":["namn","antalplatser","count"],"values":[["Orion",24,3],["Sirius",16,4],["Saturnus",24,3],["Tellus",32,3],["Jupiter",12,6]]},"alternative_results":[{"columns":["namn","antalplatser","count"],"values":[["Tellus",32,3],["Orion",24,3],["Sirius",16,4],["Saturnus",24,3],["Jupiter",12,6]]}]},{"id":64,"description":"Ta fram antal kurstillfällen som varje kurs har haft! Visa kursens kod, kursens namn och antalet!","display_sequence":"C","result":{"columns":["kurskod","namn","count"],"values":[["Java2","Java, fortsättningskurs",3],["FDBD","Fysisk databasdesign",1],["DBM1","Databasmetodik",4],["Log1","Logik",3],["LDBD","Logisk databasdesign",3],["Java1","Java, grundkurs",5]]},"alternative_results":[{"columns":["kurskod","namn","count"],"values":[["Java2","Java, fortsättningskurs",3],["FDBD","Fysisk databasdesign",1],["DBM1","Databasmetodik",4],["Log1","Logik",3],["LDBD","Logisk databasdesign",3],["Java1","Java, grundkurs",5]]}]},{"id":65,"description":"Ta fram antal kurstillfällen som varje lärare har hållit! Visa lärarens personnummer, lärarens namn och antalet!","display_sequence":"D","result":{"columns":["personnummer","namn","count"],"values":[["111017-0005","Sofia Wilsson",4],["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["111017-0001","Anders Ödman",0],["131017-0050","Carl Nilsson",2]]},"alternative_results":[{"columns":["personnummer","namn","count"],"values":[["111017-0005","Sofia Wilsson",4],["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["131017-0050","Carl Nilsson",2]]}]},{"id":66,"description":"Ta fram antal deltagande studenter för varje kurstillfälle! Visa kurstillfällets kurskod och kursnamn, kurstillfällets startdatum och antalet deltagande studenter!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum","count"],"values":[["DBM1","Databasmetodik","2010-09-22",4],["DBM1","Databasmetodik","2008-04-02",4],["LDBD","Logisk databasdesign","2008-05-06",2],["Java2","Java, fortsättningskurs","2010-04-11",4],["Java1","Java, grundkurs","2010-05-01",3],["Java1","Java, grundkurs","2008-05-06",2],["FDBD","Fysisk databasdesign","2008-05-09",3],["Log1","Logik","2008-04-16",2],["Java1","Java, grundkurs","2008-03-06",6],["Java2","Java, fortsättningskurs","2008-04-16",4],["LDBD","Logisk databasdesign","2008-09-02",3],["Log1","Logik","2010-05-01",4],["Java2","Java, fortsättningskurs","2009-01-22",4],["Java1","Java, grundkurs","2008-09-02",2],["Java1","Java, grundkurs","2011-05-01",0],["Log1","Logik","2009-09-17",2],["LDBD","Logisk databasdesign","2010-09-24",3],["DBM1","Databasmetodik","2009-01-28",3],["DBM1","Databasmetodik","2010-02-15",3]]},"alternative_results":[{"columns":["kurs","namn","startdatum","count"],"values":[["DBM1","Databasmetodik","2010-09-22",4],["DBM1","Databasmetodik","2008-04-02",4],["LDBD","Logisk databasdesign","2008-05-06",2],["Java2","Java, fortsättningskurs","2010-04-11",4],["Java1","Java, grundkurs","2010-05-01",3],["Java1","Java, grundkurs","2008-05-06",2],["FDBD","Fysisk databasdesign","2008-05-09",3],["Log1","Logik","2008-04-16",2],["Java1","Java, grundkurs","2008-03-06",6],["Java2","Java, fortsättningskurs","2008-04-16",4],["LDBD","Logisk databasdesign","2008-09-02",3],["Log1","Logik","2010-05-01",4],["Java2","Java, fortsättningskurs","2009-01-22",4],["Java1","Java, grundkurs","2008-09-02",2],["Log1","Logik","2009-09-17",2],["LDBD","Logisk databasdesign","2010-09-24",3],["DBM1","Databasmetodik","2009-01-28",3],["DBM1","Databasmetodik","2010-02-15",3]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen varje lärare har hållit! II. Ta fram personnummer, namn och telefon på läraren som har hållit flest kurstillfällen!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"]]}},{"id":68,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen per student! II. Ta fram personnummer, namn och telefon på den student som har deltagit i flest kurstillfällen!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"]]}},{"id":69,"description":"I. Ta fram kurskod, namn och längd samt antal kurstillfällen per kurs! II. Ta fram kurskod, namn och längd på den kurs som har haft flest kurstillfällen!","display_sequence":"C","result":{"columns":["kurskod","namn","längd"],"values":[["Java1","Java, grundkurs",5]]}},{"id":70,"description":"I. Ta fram namn och kapacitet samt antal kurstillfällen per rum! II. Ta fram namn och kapacitet på det rum som har använts för flest kurstillfällen!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Ta fram kurskod, kursnamn och startdatum samt antal deltagare per kurstillfälle! II. Ta fram kurskod, kursnamn och startdatum på kurstillfället som har haft flest deltagare!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum"],"values":[["Java1","Java, grundkurs","2008-03-06"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i minst tre OLIKA kurser!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0051","Eva Jung","Solna"]]}},{"id":73,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit minst tre OLIKA kurser!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":74,"description":"Ta fram personnummer, namn och ort på lärare som har hållit kurstillfällen i minst tre OLIKA rum!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0003","Carl Nordin","Södertälje"],["111017-0004","Lena Svensson","Täby"]]}},{"id":75,"description":"Ta fram namn och kapacitet på rum som har använts av minst tre OLIKA lärare!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Ta fram namn och kapacitet på rum som har använts för kurstillfällen av minst tre OLIKA kurser!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":77,"description":"Ta fram kod, namn och pris på kurser som har hållits i minst tre OLIKA rum!","display_sequence":"F","result":{"columns":["kurskod","namn","pris"],"values":[["Java1","Java, grundkurs",6700],["LDBD","Logisk databasdesign",6000]]}},{"id":78,"description":"Ta fram kod, namn och pris på kurser som har hållits av minst tre OLIKA lärare!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["DBM1","Databasmetodik",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Ta fram namn och ort på personer som inte är lärare!","display_sequence":"A","result":{"columns":["namn","ort"],"values":[["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Kurt Grahn","Bro"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Eva Jung","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":80,"description":"Ta fram namn och ort på studenter som inte deltog i något kurstillfälle med startdatum under 2010!","display_sequence":"B","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Eva Jung","Solna"],["Carl Nilsson","Solna"],["Eva Jung","Solna"]]}},{"id":81,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Java1!","display_sequence":"C","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Carl Nilsson","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":82,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Log1!","display_sequence":"D","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Carl Nilsson","Solna"],["Eva Jung","Solna"],["Lars Holm","Solna"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som aldrig har hållit ett kurstillfälle för kursen \"Java, fortsättningskurs\"!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0001","Anders Ödman",634,"151576"],["111017-0003","Carl Nordin",603,"151553"],["111017-0004","Lena Svensson",605,"151556"],["111017-0005","Sofia Wilsson",622,"151585"]]}},{"id":84,"description":"Ta fram personnummer, namn och ort på funktionshindrade studenter som inte har gått kursen \"Logisk databasdesign\"!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0052","Lars Holm","Solna"]]}},{"id":85,"description":"Ta fram namn och kapacitet på rum som aldrig har använts för ett kurstillfälle av kursen \"Logisk databasdesign\"!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Ta fram namn och kapacitet på rum som aldrig har använts av läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Ta fram personnummer, namn och telefon på studenter som har läst kursen \"Fysisk databasdesign\" eller kursen \"Logisk databasdesign\" (eller båda)!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"],["121017-0008","Kurt Grahn","192292"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0050","Carl Nilsson","332356"]]}},{"id":88,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i kurstillfällen i rum Orion eller i rum Jupiter (eller i båda)!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":89,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kursen \"Logik\" eller kursen \"Databasmetodik\" (eller båda)!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["131017-0050","Carl Nilsson","332356"]]}},{"id":90,"description":"Ta fram namn och kapacitet på rum som har använts av läraren Bo Åkerman eller av läraren Carl Nordin (eller av båda)!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Ta fram namn och kapacitet på rum som har använts för kursen \"Logik\" eller för kursen \"Java, fortsättningskurs\" (eller för båda)!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Ta fram personnummer, namn och ort på studenter som har läst både kursen \"Fysisk databasdesign\" och kursen \"Logisk databasdesign\"!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0008","Kurt Grahn","Bro"],["121017-0006","Siw Björk","Kista"]]}},{"id":93,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen både i rum Orion och i rum Jupiter!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0006","Siw Björk","452678"],["121017-0005","Lars Holm","203045"],["131017-0051","Eva Jung","449867"],["121017-0008","Kurt Grahn","192292"]]}},{"id":94,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har hållit både kursen \"Logisk databasdesign\" och kursen \"Databasmetodik\"!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605]]}},{"id":95,"description":"Ta fram namn och kapacitet på rum som har använts av både läraren Lena Svensson och läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Orion",24],["Saturnus",24],["Jupiter",12]]}},{"id":96,"description":"Ta fram namn och kapacitet på rum som har använts för både kursen \"Logik\" och kursen \"Java, grundkurs\"!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":97,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som har hållit kurstillfällen både i rum Jupiter och i rum Sirius!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0005","Sofia Wilsson",622,"151585"],["111017-0004","Lena Svensson",605,"151556"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen ledda av samtliga lärare från Södertälje!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"]]}},{"id":99,"description":"Ta fram namn och kapacitet på rum som har använts av samtliga lärare från Södertälje!","display_sequence":"B","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":100,"description":"Ta fram namn och kapacitet på rum som har använts för samtliga kurser som kostar under 5000!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":101,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kurstillfällen av samtliga kurser på högst tre veckor!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0005","Sofia Wilsson","151585"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Ta fram antal studenter från Kista för varje kurstillfälle! Visa kurskod, startdatum och antal studenter! Även kurstillfällen utan studenter från Kista ska visas!","display_sequence":"A","result":{"columns":["kurs","startdatum","count"],"values":[["Java1","2008-03-06",0],["LDBD","2010-09-24",0],["LDBD","2008-09-02",1],["Java1","2008-05-06",2],["Log1","2009-09-17",1],["Java2","2010-04-11",2],["FDBD","2008-05-09",1],["DBM1","2008-04-02",1],["Java2","2008-04-16",3],["LDBD","2008-05-06",1],["Log1","2010-05-01",0],["Java1","2010-05-01",2],["DBM1","2010-09-22",1],["DBM1","2009-01-28",0],["Java2","2009-01-22",1],["Java1","2011-05-01",0],["Log1","2008-04-16",1],["Java1","2008-09-02",0],["DBM1","2010-02-15",1]]}},{"id":103,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Logisk databasdesign\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"B","result":{"columns":["personnummer","namn","ort","count"],"values":[["121017-0006","Siw Björk","Kista",1],["121017-0003","Ebba Ryd","Bromma",0],["121117-0041","Eva Berglund","Södertälje",1],["131017-0053","Bo Dahl","Täby",0],["121017-0004","Robert Ahl","Kista",0],["131017-0051","Eva Jung","Solna",0],["121017-0002","Ann Stål","Kista",0],["121017-0001","Bo Dahl","Bromma",1],["121017-0008","Kurt Grahn","Bro",2],["121018-0040","Britt Maj","Södertälje",1],["121017-0009","Eva Jung","Solna",0],["121017-0010","Lola Frid","Täby",0],["121017-0005","Lars Holm","Solna",0],["131017-0052","Lars Holm","Solna",0],["111017-0001","Anders Ödman","Sollentuna",0],["121017-0007","Sigge Ehn","Kista",1],["131017-0050","Carl Nilsson","Solna",1]]}},{"id":104,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Java, grundkurs\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"C","result":{"columns":["personnummer","namn","ort","count"],"values":[["121017-0006","Siw Björk","Kista",2],["121017-0003","Ebba Ryd","Bromma",1],["121117-0041","Eva Berglund","Södertälje",0],["131017-0053","Bo Dahl","Täby",0],["121017-0004","Robert Ahl","Kista",0],["131017-0051","Eva Jung","Solna",1],["121017-0002","Ann Stål","Kista",1],["121017-0001","Bo Dahl","Bromma",2],["121017-0008","Kurt Grahn","Bro",2],["121018-0040","Britt Maj","Södertälje",0],["121017-0009","Eva Jung","Solna",2],["121017-0010","Lola Frid","Täby",1],["121017-0005","Lars Holm","Solna",0],["131017-0052","Lars Holm","Solna",0],["111017-0001","Anders Ödman","Sollentuna",0],["121017-0007","Sigge Ehn","Kista",1],["131017-0050","Carl Nilsson","Solna",0]]}},{"id":105,"description":"Ta fram antal gånger som varje lärare har hållit kursen \"Java, grundkurs\"! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kursen ska visas!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon","tjänsterum","count"],"values":[["131017-0050","Carl Nilsson","332356",558,0],["111017-0003","Carl Nordin","151553",603,2],["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,3],["111017-0005","Sofia Wilsson","151585",622,0],["111017-0004","Lena Svensson","151556",605,0]]}},{"id":106,"description":"Ta fram antal kurstillfällen som varje lärare har hållit med start under år 2010! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kurstillfällen under 2010 ska visas!","display_sequence":"E","result":{"columns":["personnummer","namn","telefon","tjänsterum","count"],"values":[["131017-0050","Carl Nilsson","332356",558,2],["111017-0003","Carl Nordin","151553",603,1],["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,1],["111017-0005","Sofia Wilsson","151585",622,0],["111017-0004","Lena Svensson","151556",605,2]]}},{"id":107,"description":"Ta fram antal kurstillfällen med start under år 2008 för varje student! Visa studentens personnummer, namn, telefon och ort samt antalet! Även studenter som inte har deltagit i kurstillfällen under 2008 ska visas!","display_sequence":"F","result":{"columns":["personnummer","namn","telefon","ort","count"],"values":[["121017-0006","Siw Björk","452678","Kista",4],["121017-0003","Ebba Ryd","325305","Bromma",3],["121117-0041","Eva Berglund","774355","Södertälje",0],["131017-0053","Bo Dahl","770691","Täby",0],["121017-0004","Robert Ahl","123435","Kista",1],["131017-0051","Eva Jung","449867","Solna",1],["121017-0002","Ann Stål","373789","Kista",3],["121017-0001","Bo Dahl","163578","Bromma",4],["121017-0008","Kurt Grahn","192292","Bro",3],["121018-0040","Britt Maj","982355","Södertälje",0],["121017-0009","Eva Jung","131187","Solna",2],["121017-0010","Lola Frid","723384","Täby",2],["121017-0005","Lars Holm","203045","Solna",2],["131017-0052","Lars Holm","665844","Solna",0],["111017-0001","Anders Ödman","151576","Sollentuna",0],["121017-0007","Sigge Ehn","245578","Kista",2],["131017-0050","Carl Nilsson","332356","Solna",1]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Ta fram information om kurstillfällen som ingen student från Solna har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"A","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["DBM1","Databasmetodik","2008-04-02","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-05-06","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2008-05-06","Sirius","Sofia Wilsson"],["FDBD","Fysisk databasdesign","2008-05-09","Jupiter","Lena Svensson"],["Log1","Logik","2009-09-17","Jupiter","Sofia Wilsson"],["DBM1","Databasmetodik","2010-02-15","Sirius","Lena Svensson"],["Java1","Java, grundkurs","2010-05-01","Saturnus","Carl Nordin"],["LDBD","Logisk databasdesign","2010-09-24","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01","Saturnus","Bo Åkerman"]]}},{"id":109,"description":"Ta fram information om kurstillfällen som ingen student från Kista har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"B","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Java1","Java, grundkurs","2008-03-06","Tellus","Bo Åkerman"],["Java1","Java, grundkurs","2008-09-02","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2010-09-24","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01","Saturnus","Bo Åkerman"]]}},{"id":110,"description":"Ta fram information om kurstillfällen som ingen funktionshindrad student har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"C","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Log1","Logik","2008-04-16","Jupiter","Carl Nordin"],["LDBD","Logisk databasdesign","2008-05-06","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-09-02","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01","Jupiter","Bo Åkerman"],["Java1","Java, grundkurs","2011-05-01","Saturnus","Bo Åkerman"]]}}]}]} \ No newline at end of file diff --git a/public/languages/sv/questionpool.json b/public/languages/sv/questionpool.json index 3c51416..e1d39ff 100644 --- a/public/languages/sv/questionpool.json +++ b/public/languages/sv/questionpool.json @@ -1 +1 @@ -{"language":"sv","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Solna!","display_sequence":"A","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0005","Lars Holm","Skolgatan 3","16966"],["121017-0009","Eva Jung","Storgatan 5","16966"],["131017-0050","Carl Nilsson","Strogatan 4","16966"],["131017-0051","Eva Jung","Skolgatan 12","16966"],["131017-0052","Lars Holm","Skolgatan 1","16966"]]}},{"id":2,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":3,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Kista!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0002","Ann Stål","Lindvägen 3","16429"],["121017-0004","Robert Ahl","Ekvägen 1","16425"],["121017-0006","Siw Björk","Bokvägen 2","16431"],["121017-0007","Sigge Ehn","Bokvägen 24","16429"]]}},{"id":4,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":5,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Solna!","display_sequence":"E","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Lars Holm","Skolgatan 3","16966","203045"],["Eva Jung","Storgatan 5","16966","131187"],["Carl Nilsson","Strogatan 4","16966","332356"],["Eva Jung","Skolgatan 12","16966","449867"],["Lars Holm","Skolgatan 1","16966","665844"]]}},{"id":6,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Kista!","display_sequence":"F","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Ann Stål","Lindvägen 3","16429","373789"],["Robert Ahl","Ekvägen 1","16425","123435"],["Siw Björk","Bokvägen 2","16431","452678"],["Sigge Ehn","Bokvägen 24","16429","245578"]]}},{"id":7,"description":"Ta fram kurskod, namn och pris på kurser på 3 veckor!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Ta fram kurskod, namn och pris på kurser på 4 veckor!","display_sequence":"H","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Kista!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0009","Eva Jung","Solna"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"]]}},{"id":10,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna eller i Bromma!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":11,"description":"Ta fram personnummer, namn och ort på personer som bor i Kista eller i Täby!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0053","Bo Dahl","Täby"]]}},{"id":12,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista eller i Bromma!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0002","Ann Stål","373789"],["121017-0003","Ebba Ryd","325305"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":13,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Täby!","display_sequence":"E","result":{"columns":["namn","adress","postnr","ort"],"values":[["Lena Svensson","Nygatan 4","18754","Täby"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"],["Bo Dahl","Nygatan 63","18753","Täby"]]}},{"id":14,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Kista eller i Solna!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Lars Holm","Skolgatan 3","16966","Solna"],["Siw Björk","Bokvägen 2","16431","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Eva Jung","Storgatan 5","16966","Solna"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":15,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Bromma!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0004","Lena Svensson","151556"],["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0010","Lola Frid","723384"],["131017-0053","Bo Dahl","770691"]]}},{"id":16,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Täby!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0005","Lars Holm","Solna"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":17,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Södertälje!","display_sequence":"I","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["121017-0010","Lola Frid","723384"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0053","Bo Dahl","770691"]]}},{"id":18,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Södertälje!","display_sequence":"J","result":{"columns":["namn","adress","postnr","ort"],"values":[["Carl Nordin","Dalgatan 3","15106","Södertälje"],["Sofia Wilsson","Björkgatan 5","15136","Södertälje"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":19,"description":"Ta fram kurskod, namn och pris på kurser på 3 eller 4 veckor!","display_sequence":"K","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["lärare"],"values":[["111017-0003"],["111017-0002"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":23,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["lärare"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":26,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"]]}},{"id":27,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0002"],["121017-0006"],["121017-0007"]]}},{"id":28,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0005"],["131017-0051"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}},{"id":29,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"]]}},{"id":30,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod LDBD!","display_sequence":"K","result":{"columns":["student"],"values":[["121017-0001"],["121017-0007"],["121017-0006"],["121017-0008"],["131017-0050"],["121018-0040"],["121117-0041"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0003","Carl Nordin","151553"],["111017-0002","Bo Åkerman","151526"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":32,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0004","Lena Svensson","Täby"]]}},{"id":33,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0005","Sofia Wilsson","Björkgatan 5","15136"],["111017-0004","Lena Svensson","Nygatan 4","18754"],["131017-0050","Carl Nilsson","Strogatan 4","16966"]]}},{"id":34,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"]]}},{"id":35,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["131017-0050","Carl Nilsson","Solna"]]}},{"id":36,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Sofia Wilsson","Björkgatan 5","15136","Södertälje"],["Lena Svensson","Nygatan 4","18754","Täby"],["Carl Nilsson","Strogatan 4","16966","Solna"]]}},{"id":37,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0005","Sofia Wilsson","151585"],["111017-0004","Lena Svensson","151556"]]}},{"id":38,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 1!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0003","Carl Nordin","Södertälje"],["111017-0002","Bo Åkerman","Åkersberga"],["111017-0004","Lena Svensson","Täby"],["111017-0005","Sofia Wilsson","Södertälje"]]}},{"id":39,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"I","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0002","Bo Åkerman","Villagatan 2","18491"],["111017-0004","Lena Svensson","Nygatan 4","18754"]]}},{"id":40,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java2!","display_sequence":"J","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["131017-0050","Carl Nilsson","332356"]]}},{"id":41,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"K","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0005","Sofia Wilsson","Södertälje"],["111017-0004","Lena Svensson","Täby"]]}},{"id":42,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod Java1!","display_sequence":"L","result":{"columns":["namn","adress","postnr","ort"],"values":[["Bo Åkerman","Villagatan 2","18491","Åkersberga"],["Carl Nordin","Dalgatan 3","15106","Södertälje"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0003","Carl Nordin",603],["111017-0002","Bo Åkerman",604],["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}},{"id":44,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0004","Lena Svensson",605]]}},{"id":45,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605],["131017-0050","Carl Nilsson",558]]}},{"id":46,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0003","Carl Nordin",603]]}},{"id":47,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["131017-0050","Carl Nilsson",558]]}},{"id":48,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605],["131017-0050","Carl Nilsson",558]]}},{"id":49,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["121017-0004"],["121017-0005"],["121017-0002"],["121017-0006"],["121017-0003"],["121017-0008"],["131017-0051"],["121117-0041"],["121018-0040"],["131017-0053"]]}},{"id":51,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["131017-0050"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":52,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"],["121017-0005"],["121017-0007"]]}},{"id":53,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0007"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0002","Ann Stål","373789"],["121017-0006","Siw Björk","452678"],["121017-0003","Ebba Ryd","325305"],["121017-0008","Kurt Grahn","192292"],["131017-0051","Eva Jung","449867"],["121117-0041","Eva Berglund","774355"],["121018-0040","Britt Maj","982355"],["131017-0053","Bo Dahl","770691"]]}},{"id":55,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["131017-0050","Carl Nilsson","Solna"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0051","Eva Jung","Solna"]]}},{"id":56,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0008","Kurt Grahn","192292"],["121017-0009","Eva Jung","131187"],["121017-0010","Lola Frid","723384"],["131017-0051","Eva Jung","449867"],["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"]]}},{"id":57,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0010","Lola Frid","Täby"],["121017-0007","Sigge Ehn","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0004","Robert Ahl","Kista"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0052","Lars Holm","Solna"]]}},{"id":58,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"E","result":{"columns":["namn","adress","ort","telefon"],"values":[["Robert Ahl","Ekvägen 1","Kista","123435"],["Lars Holm","Skolgatan 3","Solna","203045"],["Ann Stål","Lindvägen 3","Kista","373789"],["Siw Björk","Bokvägen 2","Kista","452678"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Eva Jung","Skolgatan 12","Solna","449867"],["Eva Berglund","Hamngatan 15b","Södertälje","774355"],["Britt Maj","Karlvägen 44","Södertälje","982355"],["Bo Dahl","Nygatan 63","Täby","770691"]]}},{"id":59,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Lars Holm","Skolgatan 3","16966","Solna"],["Siw Björk","Bokvägen 2","16431","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Kurt Grahn","Byvägen 112","19735","Bro"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Eva Jung","Skolgatan 12","16966","Solna"]]}},{"id":60,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"G","result":{"columns":["namn","adress","ort","telefon"],"values":[["Bo Dahl","Ahlgatan 6","Bromma","163578"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Eva Jung","Storgatan 5","Solna","131187"],["Lola Frid","Lillgatan 3","Täby","723384"],["Eva Jung","Skolgatan 12","Solna","449867"],["Robert Ahl","Ekvägen 1","Kista","123435"],["Lars Holm","Skolgatan 3","Solna","203045"],["Sigge Ehn","Bokvägen 24","Kista","245578"]]}},{"id":61,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"H","result":{"columns":["namn","adress","postnr","ort"],"values":[["Bo Dahl","Ahlgatan 6","16102","Bromma"],["Ann Stål","Lindvägen 3","16429","Kista"],["Ebba Ryd","Ankvägen 4","16107","Bromma"],["Lola Frid","Lillgatan 3","18754","Täby"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Siw Björk","Bokvägen 2","16431","Kista"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Lars Holm","Skolgatan 1","16966","Solna"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Ta fram antal kurstillfällen som varje student har deltagit i! Visa studentens personnummer, studentens namn och antalet!","display_sequence":"A","result":{"columns":["personnummer","namn","antal"],"values":[["111017-0001","Anders Ödman",0],["121017-0001","Bo Dahl",4],["121017-0002","Ann Stål",4],["121017-0003","Ebba Ryd",5],["121017-0004","Robert Ahl",4],["121017-0005","Lars Holm",5],["121017-0006","Siw Björk",6],["121017-0007","Sigge Ehn",4],["121017-0008","Kurt Grahn",6],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121018-0040","Britt Maj",3],["121117-0041","Eva Berglund",3],["131017-0050","Carl Nilsson",1],["131017-0051","Eva Jung",3],["131017-0052","Lars Holm",1],["131017-0053","Bo Dahl",1]]},"alternative_results":[{"columns":["personnummer","namn","antal"],"values":[["121017-0001","Bo Dahl",4],["121017-0002","Ann Stål",4],["121017-0003","Ebba Ryd",5],["121017-0004","Robert Ahl",4],["121017-0005","Lars Holm",5],["121017-0006","Siw Björk",6],["121017-0007","Sigge Ehn",4],["121017-0008","Kurt Grahn",6],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121018-0040","Britt Maj",3],["121117-0041","Eva Berglund",3],["131017-0050","Carl Nilsson",1],["131017-0051","Eva Jung",3],["131017-0052","Lars Holm",1],["131017-0053","Bo Dahl",1]]}]},{"id":63,"description":"Ta fram antal kurstillfällen som varje rum har använts till! Visa rummets namn, rummets kapacitet och antalet!","display_sequence":"B","result":{"columns":["namn","antalplatser","antal"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]},"alternative_results":[{"columns":["namn","antalplatser","antal"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]}]},{"id":64,"description":"Ta fram antal kurstillfällen som varje kurs har haft! Visa kursens kod, kursens namn och antalet!","display_sequence":"C","result":{"columns":["kurskod","namn","antal"],"values":[["DBM1","Databasmetodik",4],["FDBD","Fysisk databasdesign",1],["Java1","Java, grundkurs",5],["Java2","Java, fortsättningskurs",3],["LDBD","Logisk databasdesign",3],["Log1","Logik",3]]},"alternative_results":[{"columns":["kurskod","namn","antal"],"values":[["DBM1","Databasmetodik",4],["FDBD","Fysisk databasdesign",1],["Java1","Java, grundkurs",5],["Java2","Java, fortsättningskurs",3],["LDBD","Logisk databasdesign",3],["Log1","Logik",3]]}]},{"id":65,"description":"Ta fram antal kurstillfällen som varje lärare har hållit! Visa lärarens personnummer, lärarens namn och antalet!","display_sequence":"D","result":{"columns":["personnummer","namn","antal"],"values":[["111017-0001","Anders Ödman",0],["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["111017-0005","Sofia Wilsson",4],["131017-0050","Carl Nilsson",2]]},"alternative_results":[{"columns":["personnummer","namn","antal"],"values":[["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["111017-0005","Sofia Wilsson",4],["131017-0050","Carl Nilsson",2]]}]},{"id":66,"description":"Ta fram antal deltagande studenter för varje kurstillfälle! Visa kurstillfällets kurskod och kursnamn, kurstillfällets startdatum och antalet deltagande studenter!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum","antal"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z",4],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-09-22T00:00:00.000Z",4],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z",3],["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z",3],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z",0],["Java2","Java, fortsättningskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z",2],["LDBD","Logisk databasdesign","2008-09-02T00:00:00.000Z",3],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4]]},"alternative_results":[{"columns":["kurs","namn","startdatum","antal"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z",4],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-09-22T00:00:00.000Z",4],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z",3],["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z",3],["Java2","Java, fortsättningskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z",2],["LDBD","Logisk databasdesign","2008-09-02T00:00:00.000Z",3],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen varje lärare har hållit! II. Ta fram personnummer, namn och telefon på läraren som har hållit flest kurstillfällen!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"]]}},{"id":68,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen per student! II. Ta fram personnummer, namn och telefon på den student som har deltagit i flest kurstillfällen!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"]]}},{"id":69,"description":"I. Ta fram kurskod, namn och längd samt antal kurstillfällen per kurs! II. Ta fram kurskod, namn och längd på den kurs som har haft flest kurstillfällen!","display_sequence":"C","result":{"columns":["kurskod","namn","längd"],"values":[["Java1","Java, grundkurs",5]]}},{"id":70,"description":"I. Ta fram namn och kapacitet samt antal kurstillfällen per rum! II. Ta fram namn och kapacitet på det rum som har använts för flest kurstillfällen!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Ta fram kurskod, kursnamn och startdatum samt antal deltagare per kurstillfälle! II. Ta fram kurskod, kursnamn och startdatum på kurstillfället som har haft flest deltagare!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum"],"values":[["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i minst tre OLIKA kurser!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0051","Eva Jung","Solna"]]}},{"id":73,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit minst tre OLIKA kurser!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":74,"description":"Ta fram personnummer, namn och ort på lärare som har hållit kurstillfällen i minst tre OLIKA rum!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0003","Carl Nordin","Södertälje"],["111017-0004","Lena Svensson","Täby"]]}},{"id":75,"description":"Ta fram namn och kapacitet på rum som har använts av minst tre OLIKA lärare!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Ta fram namn och kapacitet på rum som har använts för kurstillfällen av minst tre OLIKA kurser!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":77,"description":"Ta fram kod, namn och pris på kurser som har hållits i minst tre OLIKA rum!","display_sequence":"F","result":{"columns":["kurskod","namn","pris"],"values":[["Java1","Java, grundkurs",6700],["LDBD","Logisk databasdesign",6000]]}},{"id":78,"description":"Ta fram kod, namn och pris på kurser som har hållits av minst tre OLIKA lärare!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["DBM1","Databasmetodik",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Ta fram namn och ort på personer som inte är lärare!","display_sequence":"A","result":{"columns":["namn","ort"],"values":[["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Kurt Grahn","Bro"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Eva Jung","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":80,"description":"Ta fram namn och ort på studenter som inte deltog i något kurstillfälle med startdatum under 2010!","display_sequence":"B","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Eva Jung","Solna"],["Carl Nilsson","Solna"],["Eva Jung","Solna"]]}},{"id":81,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Java1!","display_sequence":"C","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Carl Nilsson","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":82,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Log1!","display_sequence":"D","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Carl Nilsson","Solna"],["Eva Jung","Solna"],["Lars Holm","Solna"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som aldrig har hållit ett kurstillfälle för kursen \"Java, fortsättningskurs\"!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0001","Anders Ödman",634,"151576"],["111017-0003","Carl Nordin",603,"151553"],["111017-0004","Lena Svensson",605,"151556"],["111017-0005","Sofia Wilsson",622,"151585"]]}},{"id":84,"description":"Ta fram personnummer, namn och ort på funktionshindrade studenter som inte har gått kursen \"Logisk databasdesign\"!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0052","Lars Holm","Solna"]]}},{"id":85,"description":"Ta fram namn och kapacitet på rum som aldrig har använts för ett kurstillfälle av kursen \"Logisk databasdesign\"!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Ta fram namn och kapacitet på rum som aldrig har använts av läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Ta fram personnummer, namn och telefon på studenter som har läst kursen \"Fysisk databasdesign\" eller kursen \"Logisk databasdesign\" (eller båda)!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"],["121017-0008","Kurt Grahn","192292"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0050","Carl Nilsson","332356"]]}},{"id":88,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i kurstillfällen i rum Orion eller i rum Jupiter (eller i båda)!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":89,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kursen \"Logik\" eller kursen \"Databasmetodik\" (eller båda)!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["131017-0050","Carl Nilsson","332356"]]}},{"id":90,"description":"Ta fram namn och kapacitet på rum som har använts av läraren Bo Åkerman eller av läraren Carl Nordin (eller av båda)!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Ta fram namn och kapacitet på rum som har använts för kursen \"Logik\" eller för kursen \"Java, fortsättningskurs\" (eller för båda)!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Ta fram personnummer, namn och ort på studenter som har läst både kursen \"Fysisk databasdesign\" och kursen \"Logisk databasdesign\"!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0006","Siw Björk","Kista"],["121017-0008","Kurt Grahn","Bro"]]}},{"id":93,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen både i rum Orion och i rum Jupiter!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0005","Lars Holm","203045"],["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"],["131017-0051","Eva Jung","449867"]]}},{"id":94,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har hållit både kursen \"Logisk databasdesign\" och kursen \"Databasmetodik\"!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}},{"id":95,"description":"Ta fram namn och kapacitet på rum som har använts av både läraren Lena Svensson och läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24]]}},{"id":96,"description":"Ta fram namn och kapacitet på rum som har använts för både kursen \"Logik\" och kursen \"Java, grundkurs\"!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":97,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som har hållit kurstillfällen både i rum Jupiter och i rum Sirius!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0004","Lena Svensson",605,"151556"],["111017-0005","Sofia Wilsson",622,"151585"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen ledda av samtliga lärare från Södertälje!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"],["121017-0004","Robert Ahl","123435"]]}},{"id":99,"description":"Ta fram namn och kapacitet på rum som har använts av samtliga lärare från Södertälje!","display_sequence":"B","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":100,"description":"Ta fram namn och kapacitet på rum som har använts för samtliga kurser som kostar under 5000!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":101,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kurstillfällen av samtliga kurser på högst tre veckor!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0005","Sofia Wilsson","151585"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Ta fram antal studenter från Kista för varje kurstillfälle! Visa kurskod, startdatum och antal studenter! Även kurstillfällen utan studenter från Kista ska visas!","display_sequence":"A","result":{"columns":["kurs","startdatum","antal"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["FDBD","2008-05-09T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDBD","2008-05-06T00:00:00.000Z",1],["LDBD","2008-09-02T00:00:00.000Z",1],["LDBD","2010-09-24T00:00:00.000Z",0],["Log1","2008-04-16T00:00:00.000Z",1],["Log1","2009-09-17T00:00:00.000Z",1],["Log1","2010-05-01T00:00:00.000Z",0]]}},{"id":103,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Logisk databasdesign\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"B","result":{"columns":["personnummer","namn","ort","antal"],"values":[["111017-0001","Anders Ödman","Sollentuna",0],["121017-0001","Bo Dahl","Bromma",1],["121017-0002","Ann Stål","Kista",0],["121017-0003","Ebba Ryd","Bromma",0],["121017-0004","Robert Ahl","Kista",0],["121017-0005","Lars Holm","Solna",0],["121017-0006","Siw Björk","Kista",1],["121017-0007","Sigge Ehn","Kista",1],["121017-0008","Kurt Grahn","Bro",2],["121017-0009","Eva Jung","Solna",0],["121017-0010","Lola Frid","Täby",0],["121018-0040","Britt Maj","Södertälje",1],["121117-0041","Eva Berglund","Södertälje",1],["131017-0050","Carl Nilsson","Solna",1],["131017-0051","Eva Jung","Solna",0],["131017-0052","Lars Holm","Solna",0],["131017-0053","Bo Dahl","Täby",0]]}},{"id":104,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Java, grundkurs\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"C","result":{"columns":["personnummer","namn","ort","antal"],"values":[["111017-0001","Anders Ödman","Sollentuna",0],["121017-0001","Bo Dahl","Bromma",2],["121017-0002","Ann Stål","Kista",1],["121017-0003","Ebba Ryd","Bromma",1],["121017-0004","Robert Ahl","Kista",0],["121017-0005","Lars Holm","Solna",0],["121017-0006","Siw Björk","Kista",2],["121017-0007","Sigge Ehn","Kista",1],["121017-0008","Kurt Grahn","Bro",2],["121017-0009","Eva Jung","Solna",2],["121017-0010","Lola Frid","Täby",1],["121018-0040","Britt Maj","Södertälje",0],["121117-0041","Eva Berglund","Södertälje",0],["131017-0050","Carl Nilsson","Solna",0],["131017-0051","Eva Jung","Solna",1],["131017-0052","Lars Holm","Solna",0],["131017-0053","Bo Dahl","Täby",0]]}},{"id":105,"description":"Ta fram antal gånger som varje lärare har hållit kursen \"Java, grundkurs\"! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kursen ska visas!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon","tjänsterum","antal"],"values":[["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,3],["111017-0003","Carl Nordin","151553",603,2],["111017-0004","Lena Svensson","151556",605,0],["111017-0005","Sofia Wilsson","151585",622,0],["131017-0050","Carl Nilsson","332356",558,0]]}},{"id":106,"description":"Ta fram antal kurstillfällen som varje lärare har hållit med start under år 2010! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kurstillfällen under 2010 ska visas!","display_sequence":"E","result":{"columns":["personnummer","namn","telefon","tjänsterum","antal"],"values":[["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,1],["111017-0003","Carl Nordin","151553",603,1],["111017-0004","Lena Svensson","151556",605,2],["111017-0005","Sofia Wilsson","151585",622,0],["131017-0050","Carl Nilsson","332356",558,2]]}},{"id":107,"description":"Ta fram antal kurstillfällen med start under år 2008 för varje student! Visa studentens personnummer, namn, telefon och ort samt antalet! Även studenter som inte har deltagit i kurstillfällen under 2008 ska visas!","display_sequence":"F","result":{"columns":["personnummer","namn","telefon","ort","antal"],"values":[["111017-0001","Anders Ödman","151576","Sollentuna",0],["121017-0001","Bo Dahl","163578","Bromma",4],["121017-0002","Ann Stål","373789","Kista",3],["121017-0003","Ebba Ryd","325305","Bromma",3],["121017-0004","Robert Ahl","123435","Kista",1],["121017-0005","Lars Holm","203045","Solna",2],["121017-0006","Siw Björk","452678","Kista",4],["121017-0007","Sigge Ehn","245578","Kista",2],["121017-0008","Kurt Grahn","192292","Bro",3],["121017-0009","Eva Jung","131187","Solna",2],["121017-0010","Lola Frid","723384","Täby",2],["121018-0040","Britt Maj","982355","Södertälje",0],["121117-0041","Eva Berglund","774355","Södertälje",0],["131017-0050","Carl Nilsson","332356","Solna",1],["131017-0051","Eva Jung","449867","Solna",1],["131017-0052","Lars Holm","665844","Solna",0],["131017-0053","Bo Dahl","770691","Täby",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Ta fram information om kurstillfällen som ingen student från Solna har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"A","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z","Sirius","Sofia Wilsson"],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z","Jupiter","Lena Svensson"],["Log1","Logik","2009-09-17T00:00:00.000Z","Jupiter","Sofia Wilsson"],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z","Sirius","Lena Svensson"],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z","Saturnus","Carl Nordin"],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}},{"id":109,"description":"Ta fram information om kurstillfällen som ingen student från Kista har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"B","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z","Tellus","Bo Åkerman"],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}},{"id":110,"description":"Ta fram information om kurstillfällen som ingen funktionshindrad student har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"C","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Log1","Logik","2008-04-16T00:00:00.000Z","Jupiter","Carl Nordin"],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Bo Åkerman"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}}]}]} \ No newline at end of file +{"language":"sv","engine":"sqlite","defaultQuery":"SELECT * FROM Student;","questions":[{"category_id":1,"display_number":1,"questions":[{"id":1,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Solna!","display_sequence":"A","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0005","Lars Holm","Skolgatan 3","16966"],["121017-0009","Eva Jung","Storgatan 5","16966"],["131017-0050","Carl Nilsson","Strogatan 4","16966"],["131017-0051","Eva Jung","Skolgatan 12","16966"],["131017-0052","Lars Holm","Skolgatan 1","16966"]]}},{"id":2,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":3,"description":"Ta fram personnummer, namn, adress och postnummer på personer som bor i Kista!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["121017-0002","Ann Stål","Lindvägen 3","16429"],["121017-0004","Robert Ahl","Ekvägen 1","16425"],["121017-0006","Siw Björk","Bokvägen 2","16431"],["121017-0007","Sigge Ehn","Bokvägen 24","16429"]]}},{"id":4,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":5,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Solna!","display_sequence":"E","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Lars Holm","Skolgatan 3","16966","203045"],["Eva Jung","Storgatan 5","16966","131187"],["Carl Nilsson","Strogatan 4","16966","332356"],["Eva Jung","Skolgatan 12","16966","449867"],["Lars Holm","Skolgatan 1","16966","665844"]]}},{"id":6,"description":"Ta fram namn, adress, postnummer och telefon på personer som bor i Kista!","display_sequence":"F","result":{"columns":["namn","adress","postnr","telefon"],"values":[["Ann Stål","Lindvägen 3","16429","373789"],["Robert Ahl","Ekvägen 1","16425","123435"],["Siw Björk","Bokvägen 2","16431","452678"],["Sigge Ehn","Bokvägen 24","16429","245578"]]}},{"id":7,"description":"Ta fram kurskod, namn och pris på kurser på 3 veckor!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["Log1","Logik",4500]]}},{"id":8,"description":"Ta fram kurskod, namn och pris på kurser på 4 veckor!","display_sequence":"H","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000]]}}]},{"category_id":2,"display_number":2,"questions":[{"id":9,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Kista!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0009","Eva Jung","Solna"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"]]}},{"id":10,"description":"Ta fram personnummer, namn och telefon på personer som bor i Solna eller i Bromma!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0005","Lars Holm","203045"],["121017-0009","Eva Jung","131187"],["131017-0050","Carl Nilsson","332356"],["131017-0051","Eva Jung","449867"],["131017-0052","Lars Holm","665844"]]}},{"id":11,"description":"Ta fram personnummer, namn och ort på personer som bor i Kista eller i Täby!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0002","Ann Stål","Kista"],["121017-0004","Robert Ahl","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0053","Bo Dahl","Täby"]]}},{"id":12,"description":"Ta fram personnummer, namn och telefon på personer som bor i Kista eller i Bromma!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0002","Ann Stål","373789"],["121017-0003","Ebba Ryd","325305"],["121017-0004","Robert Ahl","123435"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"]]}},{"id":13,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Täby!","display_sequence":"E","result":{"columns":["namn","adress","postnr","ort"],"values":[["Lena Svensson","Nygatan 4","18754","Täby"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"],["Bo Dahl","Nygatan 63","18753","Täby"]]}},{"id":14,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Kista eller i Solna!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Lars Holm","Skolgatan 3","16966","Solna"],["Siw Björk","Bokvägen 2","16431","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Eva Jung","Storgatan 5","16966","Solna"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":15,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Bromma!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0004","Lena Svensson","151556"],["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0010","Lola Frid","723384"],["131017-0053","Bo Dahl","770691"]]}},{"id":16,"description":"Ta fram personnummer, namn och ort på personer som bor i Solna eller i Täby!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0004","Lena Svensson","Täby"],["121017-0005","Lars Holm","Solna"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0052","Lars Holm","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":17,"description":"Ta fram personnummer, namn och telefon på personer som bor i Täby eller i Södertälje!","display_sequence":"I","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["121017-0010","Lola Frid","723384"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0053","Bo Dahl","770691"]]}},{"id":18,"description":"Ta fram namn, adress, postnummer och ort på personer som bor i Solna eller i Södertälje!","display_sequence":"J","result":{"columns":["namn","adress","postnr","ort"],"values":[["Carl Nordin","Dalgatan 3","15106","Södertälje"],["Sofia Wilsson","Björkgatan 5","15136","Södertälje"],["Lars Holm","Skolgatan 3","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Skolgatan 12","16966","Solna"],["Lars Holm","Skolgatan 1","16966","Solna"]]}},{"id":19,"description":"Ta fram kurskod, namn och pris på kurser på 3 eller 4 veckor!","display_sequence":"K","result":{"columns":["kurskod","namn","pris"],"values":[["Java2","Java, fortsättningskurs",6000],["LDBD","Logisk databasdesign",6000],["Log1","Logik",4500]]}}]},{"category_id":3,"display_number":3,"questions":[{"id":20,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["lärare"],"values":[["111017-0003"],["111017-0002"],["111017-0004"],["111017-0005"]]}},{"id":21,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0004"]]}},{"id":22,"description":"Ta fram personnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":23,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["lärare"],"values":[["111017-0002"],["111017-0003"]]}},{"id":24,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["lärare"],"values":[["111017-0002"],["131017-0050"]]}},{"id":25,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"],["131017-0050"]]}},{"id":26,"description":"Ta fram personnummer på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["lärare"],"values":[["111017-0005"],["111017-0004"]]}},{"id":27,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java1!","display_sequence":"H","result":{"columns":["student"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0002"],["121017-0006"],["121017-0007"]]}},{"id":28,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod DBM1!","display_sequence":"I","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0005"],["131017-0051"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}},{"id":29,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod Java2!","display_sequence":"J","result":{"columns":["student"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"]]}},{"id":30,"description":"Ta fram personnummer på studenter som har deltagit i kursen med kod LDBD!","display_sequence":"K","result":{"columns":["student"],"values":[["121017-0001"],["121017-0007"],["121017-0006"],["121017-0008"],["131017-0050"],["121018-0040"],["121117-0041"]]}}]},{"category_id":4,"display_number":4,"questions":[{"id":31,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0003","Carl Nordin","151553"],["111017-0002","Bo Åkerman","151526"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":32,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0004","Lena Svensson","Täby"]]}},{"id":33,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0005","Sofia Wilsson","Björkgatan 5","15136"],["111017-0004","Lena Svensson","Nygatan 4","18754"],["131017-0050","Carl Nilsson","Strogatan 4","16966"]]}},{"id":34,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"]]}},{"id":35,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["131017-0050","Carl Nilsson","Solna"]]}},{"id":36,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Sofia Wilsson","Björkgatan 5","15136","Södertälje"],["Lena Svensson","Nygatan 4","18754","Täby"],["Carl Nilsson","Strogatan 4","16966","Solna"]]}},{"id":37,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0005","Sofia Wilsson","151585"],["111017-0004","Lena Svensson","151556"]]}},{"id":38,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat i rummet med id 1!","display_sequence":"H","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0003","Carl Nordin","Södertälje"],["111017-0002","Bo Åkerman","Åkersberga"],["111017-0004","Lena Svensson","Täby"],["111017-0005","Sofia Wilsson","Södertälje"]]}},{"id":39,"description":"Ta fram personnummer, namn, adress och postnummer på lärare som har undervisat i rummet med id 2!","display_sequence":"I","result":{"columns":["personnummer","namn","adress","postnr"],"values":[["111017-0002","Bo Åkerman","Villagatan 2","18491"],["111017-0004","Lena Svensson","Nygatan 4","18754"]]}},{"id":40,"description":"Ta fram personnummer, namn och telefon på lärare som har undervisat på kursen med kod Java2!","display_sequence":"J","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["131017-0050","Carl Nilsson","332356"]]}},{"id":41,"description":"Ta fram personnummer, namn och ort på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"K","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0005","Sofia Wilsson","Södertälje"],["111017-0004","Lena Svensson","Täby"]]}},{"id":42,"description":"Ta fram namn, adress, postnummer och ort på lärare som har undervisat på kursen med kod Java1!","display_sequence":"L","result":{"columns":["namn","adress","postnr","ort"],"values":[["Bo Åkerman","Villagatan 2","18491","Åkersberga"],["Carl Nordin","Dalgatan 3","15106","Södertälje"]]}}]},{"category_id":5,"display_number":5,"questions":[{"id":43,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 1!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0003","Carl Nordin",603],["111017-0002","Bo Åkerman",604],["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}},{"id":44,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 2!","display_sequence":"B","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0004","Lena Svensson",605]]}},{"id":45,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat i rummet med id 3!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605],["131017-0050","Carl Nilsson",558]]}},{"id":46,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java1!","display_sequence":"D","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["111017-0003","Carl Nordin",603]]}},{"id":47,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod Java2!","display_sequence":"E","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0002","Bo Åkerman",604],["131017-0050","Carl Nilsson",558]]}},{"id":48,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod DBM1!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605],["131017-0050","Carl Nilsson",558]]}},{"id":49,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har undervisat på kursen med kod LDBD!","display_sequence":"G","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0005","Sofia Wilsson",622],["111017-0004","Lena Svensson",605]]}}]},{"category_id":6,"display_number":6,"questions":[{"id":50,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["student"],"values":[["121017-0004"],["121017-0005"],["121017-0002"],["121017-0006"],["121017-0003"],["121017-0008"],["131017-0051"],["121117-0041"],["121018-0040"],["131017-0053"]]}},{"id":51,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["student"],"values":[["121017-0002"],["121017-0005"],["121017-0006"],["121017-0007"],["121017-0008"],["131017-0050"],["121017-0009"],["121017-0010"],["131017-0051"]]}},{"id":52,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["student"],"values":[["121017-0001"],["121017-0003"],["121017-0008"],["121017-0009"],["121017-0010"],["131017-0051"],["121017-0004"],["121017-0005"],["121017-0007"]]}},{"id":53,"description":"Ta fram personnummer på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["student"],"values":[["121017-0001"],["121017-0002"],["121017-0003"],["121017-0010"],["121017-0007"],["121017-0006"],["121017-0004"],["121018-0040"],["121117-0041"],["131017-0052"]]}}]},{"category_id":7,"display_number":7,"questions":[{"id":54,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0002","Ann Stål","373789"],["121017-0006","Siw Björk","452678"],["121017-0003","Ebba Ryd","325305"],["121017-0008","Kurt Grahn","192292"],["131017-0051","Eva Jung","449867"],["121117-0041","Eva Berglund","774355"],["121018-0040","Britt Maj","982355"],["131017-0053","Bo Dahl","770691"]]}},{"id":55,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["131017-0050","Carl Nilsson","Solna"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["131017-0051","Eva Jung","Solna"]]}},{"id":56,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0008","Kurt Grahn","192292"],["121017-0009","Eva Jung","131187"],["121017-0010","Lola Frid","723384"],["131017-0051","Eva Jung","449867"],["121017-0004","Robert Ahl","123435"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"]]}},{"id":57,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"D","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0010","Lola Frid","Täby"],["121017-0007","Sigge Ehn","Kista"],["121017-0006","Siw Björk","Kista"],["121017-0004","Robert Ahl","Kista"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0052","Lars Holm","Solna"]]}},{"id":58,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Jupiter!","display_sequence":"E","result":{"columns":["namn","adress","ort","telefon"],"values":[["Robert Ahl","Ekvägen 1","Kista","123435"],["Lars Holm","Skolgatan 3","Solna","203045"],["Ann Stål","Lindvägen 3","Kista","373789"],["Siw Björk","Bokvägen 2","Kista","452678"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Eva Jung","Skolgatan 12","Solna","449867"],["Eva Berglund","Hamngatan 15b","Södertälje","774355"],["Britt Maj","Karlvägen 44","Södertälje","982355"],["Bo Dahl","Nygatan 63","Täby","770691"]]}},{"id":59,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Orion!","display_sequence":"F","result":{"columns":["namn","adress","postnr","ort"],"values":[["Ann Stål","Lindvägen 3","16429","Kista"],["Lars Holm","Skolgatan 3","16966","Solna"],["Siw Björk","Bokvägen 2","16431","Kista"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Kurt Grahn","Byvägen 112","19735","Bro"],["Carl Nilsson","Strogatan 4","16966","Solna"],["Eva Jung","Storgatan 5","16966","Solna"],["Lola Frid","Lillgatan 3","18754","Täby"],["Eva Jung","Skolgatan 12","16966","Solna"]]}},{"id":60,"description":"Ta fram namn, adress, ort och telefon på studenter som har deltagit i något kurstillfälle i Tellus!","display_sequence":"G","result":{"columns":["namn","adress","ort","telefon"],"values":[["Bo Dahl","Ahlgatan 6","Bromma","163578"],["Ebba Ryd","Ankvägen 4","Bromma","325305"],["Kurt Grahn","Byvägen 112","Bro","192292"],["Eva Jung","Storgatan 5","Solna","131187"],["Lola Frid","Lillgatan 3","Täby","723384"],["Eva Jung","Skolgatan 12","Solna","449867"],["Robert Ahl","Ekvägen 1","Kista","123435"],["Lars Holm","Skolgatan 3","Solna","203045"],["Sigge Ehn","Bokvägen 24","Kista","245578"]]}},{"id":61,"description":"Ta fram namn, adress, postnummer och ort på studenter som har deltagit i något kurstillfälle i Sirius!","display_sequence":"H","result":{"columns":["namn","adress","postnr","ort"],"values":[["Bo Dahl","Ahlgatan 6","16102","Bromma"],["Ann Stål","Lindvägen 3","16429","Kista"],["Ebba Ryd","Ankvägen 4","16107","Bromma"],["Lola Frid","Lillgatan 3","18754","Täby"],["Sigge Ehn","Bokvägen 24","16429","Kista"],["Siw Björk","Bokvägen 2","16431","Kista"],["Robert Ahl","Ekvägen 1","16425","Kista"],["Britt Maj","Karlvägen 44","15106","Södertälje"],["Eva Berglund","Hamngatan 15b","15107","Södertälje"],["Lars Holm","Skolgatan 1","16966","Solna"]]}}]},{"category_id":8,"display_number":8,"questions":[{"id":62,"description":"Ta fram antal kurstillfällen som varje student har deltagit i! Visa studentens personnummer, studentens namn och antalet!","display_sequence":"A","result":{"columns":["personnummer","namn","antal"],"values":[["111017-0001","Anders Ödman",0],["121017-0001","Bo Dahl",4],["121017-0002","Ann Stål",4],["121017-0003","Ebba Ryd",5],["121017-0004","Robert Ahl",4],["121017-0005","Lars Holm",5],["121017-0006","Siw Björk",6],["121017-0007","Sigge Ehn",4],["121017-0008","Kurt Grahn",6],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121018-0040","Britt Maj",3],["121117-0041","Eva Berglund",3],["131017-0050","Carl Nilsson",1],["131017-0051","Eva Jung",3],["131017-0052","Lars Holm",1],["131017-0053","Bo Dahl",1]]},"alternative_results":[{"columns":["personnummer","namn","antal"],"values":[["121017-0001","Bo Dahl",4],["121017-0002","Ann Stål",4],["121017-0003","Ebba Ryd",5],["121017-0004","Robert Ahl",4],["121017-0005","Lars Holm",5],["121017-0006","Siw Björk",6],["121017-0007","Sigge Ehn",4],["121017-0008","Kurt Grahn",6],["121017-0009","Eva Jung",3],["121017-0010","Lola Frid",5],["121018-0040","Britt Maj",3],["121117-0041","Eva Berglund",3],["131017-0050","Carl Nilsson",1],["131017-0051","Eva Jung",3],["131017-0052","Lars Holm",1],["131017-0053","Bo Dahl",1]]}]},{"id":63,"description":"Ta fram antal kurstillfällen som varje rum har använts till! Visa rummets namn, rummets kapacitet och antalet!","display_sequence":"B","result":{"columns":["namn","antalplatser","antal"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]},"alternative_results":[{"columns":["namn","antalplatser","antal"],"values":[["Jupiter",12,6],["Orion",24,3],["Sirius",16,4],["Tellus",32,3],["Saturnus",24,3]]}]},{"id":64,"description":"Ta fram antal kurstillfällen som varje kurs har haft! Visa kursens kod, kursens namn och antalet!","display_sequence":"C","result":{"columns":["kurskod","namn","antal"],"values":[["DBM1","Databasmetodik",4],["FDBD","Fysisk databasdesign",1],["Java1","Java, grundkurs",5],["Java2","Java, fortsättningskurs",3],["LDBD","Logisk databasdesign",3],["Log1","Logik",3]]},"alternative_results":[{"columns":["kurskod","namn","antal"],"values":[["DBM1","Databasmetodik",4],["FDBD","Fysisk databasdesign",1],["Java1","Java, grundkurs",5],["Java2","Java, fortsättningskurs",3],["LDBD","Logisk databasdesign",3],["Log1","Logik",3]]}]},{"id":65,"description":"Ta fram antal kurstillfällen som varje lärare har hållit! Visa lärarens personnummer, lärarens namn och antalet!","display_sequence":"D","result":{"columns":["personnummer","namn","antal"],"values":[["111017-0001","Anders Ödman",0],["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["111017-0005","Sofia Wilsson",4],["131017-0050","Carl Nilsson",2]]},"alternative_results":[{"columns":["personnummer","namn","antal"],"values":[["111017-0002","Bo Åkerman",6],["111017-0003","Carl Nordin",3],["111017-0004","Lena Svensson",4],["111017-0005","Sofia Wilsson",4],["131017-0050","Carl Nilsson",2]]}]},{"id":66,"description":"Ta fram antal deltagande studenter för varje kurstillfälle! Visa kurstillfällets kurskod och kursnamn, kurstillfällets startdatum och antalet deltagande studenter!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum","antal"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z",4],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-09-22T00:00:00.000Z",4],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z",3],["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z",3],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z",0],["Java2","Java, fortsättningskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z",2],["LDBD","Logisk databasdesign","2008-09-02T00:00:00.000Z",3],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4]]},"alternative_results":[{"columns":["kurs","namn","startdatum","antal"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z",4],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z",3],["DBM1","Databasmetodik","2010-09-22T00:00:00.000Z",4],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z",3],["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z",6],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z",2],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z",2],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z",3],["Java2","Java, fortsättningskurs","2008-04-16T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2009-01-22T00:00:00.000Z",4],["Java2","Java, fortsättningskurs","2010-04-11T00:00:00.000Z",4],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z",2],["LDBD","Logisk databasdesign","2008-09-02T00:00:00.000Z",3],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z",3],["Log1","Logik","2008-04-16T00:00:00.000Z",2],["Log1","Logik","2009-09-17T00:00:00.000Z",2],["Log1","Logik","2010-05-01T00:00:00.000Z",4]]}]}]},{"category_id":9,"display_number":9,"questions":[{"id":67,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen varje lärare har hållit! II. Ta fram personnummer, namn och telefon på läraren som har hållit flest kurstillfällen!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"]]}},{"id":68,"description":"I. Ta fram personnummer, namn och telefon samt antal kurstillfällen per student! II. Ta fram personnummer, namn och telefon på den student som har deltagit i flest kurstillfällen!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"]]}},{"id":69,"description":"I. Ta fram kurskod, namn och längd samt antal kurstillfällen per kurs! II. Ta fram kurskod, namn och längd på den kurs som har haft flest kurstillfällen!","display_sequence":"C","result":{"columns":["kurskod","namn","längd"],"values":[["Java1","Java, grundkurs",5]]}},{"id":70,"description":"I. Ta fram namn och kapacitet samt antal kurstillfällen per rum! II. Ta fram namn och kapacitet på det rum som har använts för flest kurstillfällen!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":71,"description":"I. Ta fram kurskod, kursnamn och startdatum samt antal deltagare per kurstillfälle! II. Ta fram kurskod, kursnamn och startdatum på kurstillfället som har haft flest deltagare!","display_sequence":"E","result":{"columns":["kurs","namn","startdatum"],"values":[["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z"]]}}]},{"category_id":10,"display_number":10,"questions":[{"id":72,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i minst tre OLIKA kurser!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0001","Bo Dahl","Bromma"],["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0051","Eva Jung","Solna"]]}},{"id":73,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit minst tre OLIKA kurser!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"]]}},{"id":74,"description":"Ta fram personnummer, namn och ort på lärare som har hållit kurstillfällen i minst tre OLIKA rum!","display_sequence":"C","result":{"columns":["personnummer","namn","ort"],"values":[["111017-0002","Bo Åkerman","Åkersberga"],["111017-0003","Carl Nordin","Södertälje"],["111017-0004","Lena Svensson","Täby"]]}},{"id":75,"description":"Ta fram namn och kapacitet på rum som har använts av minst tre OLIKA lärare!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Sirius",16],["Tellus",32],["Saturnus",24]]}},{"id":76,"description":"Ta fram namn och kapacitet på rum som har använts för kurstillfällen av minst tre OLIKA kurser!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":77,"description":"Ta fram kod, namn och pris på kurser som har hållits i minst tre OLIKA rum!","display_sequence":"F","result":{"columns":["kurskod","namn","pris"],"values":[["Java1","Java, grundkurs",6700],["LDBD","Logisk databasdesign",6000]]}},{"id":78,"description":"Ta fram kod, namn och pris på kurser som har hållits av minst tre OLIKA lärare!","display_sequence":"G","result":{"columns":["kurskod","namn","pris"],"values":[["DBM1","Databasmetodik",2800],["Log1","Logik",4500]]}}]},{"category_id":11,"display_number":11,"questions":[{"id":79,"description":"Ta fram namn och ort på personer som inte är lärare!","display_sequence":"A","result":{"columns":["namn","ort"],"values":[["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Kurt Grahn","Bro"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Eva Jung","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":80,"description":"Ta fram namn och ort på studenter som inte deltog i något kurstillfälle med startdatum under 2010!","display_sequence":"B","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Eva Jung","Solna"],["Carl Nilsson","Solna"],["Eva Jung","Solna"]]}},{"id":81,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Java1!","display_sequence":"C","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Robert Ahl","Kista"],["Lars Holm","Solna"],["Britt Maj","Södertälje"],["Eva Berglund","Södertälje"],["Carl Nilsson","Solna"],["Lars Holm","Solna"],["Bo Dahl","Täby"]]}},{"id":82,"description":"Ta fram namn och ort på studenter som inte har gått kursen med koden Log1!","display_sequence":"D","result":{"columns":["namn","ort"],"values":[["Anders Ödman","Sollentuna"],["Bo Dahl","Bromma"],["Ann Stål","Kista"],["Ebba Ryd","Bromma"],["Siw Björk","Kista"],["Sigge Ehn","Kista"],["Eva Jung","Solna"],["Lola Frid","Täby"],["Carl Nilsson","Solna"],["Eva Jung","Solna"],["Lars Holm","Solna"]]}}]},{"category_id":12,"display_number":12,"questions":[{"id":83,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som aldrig har hållit ett kurstillfälle för kursen \"Java, fortsättningskurs\"!","display_sequence":"A","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0001","Anders Ödman",634,"151576"],["111017-0003","Carl Nordin",603,"151553"],["111017-0004","Lena Svensson",605,"151556"],["111017-0005","Sofia Wilsson",622,"151585"]]}},{"id":84,"description":"Ta fram personnummer, namn och ort på funktionshindrade studenter som inte har gått kursen \"Logisk databasdesign\"!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0010","Lola Frid","Täby"],["131017-0052","Lars Holm","Solna"]]}},{"id":85,"description":"Ta fram namn och kapacitet på rum som aldrig har använts för ett kurstillfälle av kursen \"Logisk databasdesign\"!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Tellus",32]]}},{"id":86,"description":"Ta fram namn och kapacitet på rum som aldrig har använts av läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Sirius",16]]}}]},{"category_id":13,"display_number":13,"questions":[{"id":87,"description":"Ta fram personnummer, namn och telefon på studenter som har läst kursen \"Fysisk databasdesign\" eller kursen \"Logisk databasdesign\" (eller båda)!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0003","Ebba Ryd","325305"],["121017-0006","Siw Björk","452678"],["121017-0007","Sigge Ehn","245578"],["121017-0008","Kurt Grahn","192292"],["121018-0040","Britt Maj","982355"],["121117-0041","Eva Berglund","774355"],["131017-0050","Carl Nilsson","332356"]]}},{"id":88,"description":"Ta fram personnummer, namn och ort på studenter som har deltagit i kurstillfällen i rum Orion eller i rum Jupiter (eller i båda)!","display_sequence":"B","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0002","Ann Stål","Kista"],["121017-0003","Ebba Ryd","Bromma"],["121017-0004","Robert Ahl","Kista"],["121017-0005","Lars Holm","Solna"],["121017-0006","Siw Björk","Kista"],["121017-0007","Sigge Ehn","Kista"],["121017-0008","Kurt Grahn","Bro"],["121017-0009","Eva Jung","Solna"],["121017-0010","Lola Frid","Täby"],["121018-0040","Britt Maj","Södertälje"],["121117-0041","Eva Berglund","Södertälje"],["131017-0050","Carl Nilsson","Solna"],["131017-0051","Eva Jung","Solna"],["131017-0053","Bo Dahl","Täby"]]}},{"id":89,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kursen \"Logik\" eller kursen \"Databasmetodik\" (eller båda)!","display_sequence":"C","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0002","Bo Åkerman","151526"],["111017-0003","Carl Nordin","151553"],["111017-0004","Lena Svensson","151556"],["111017-0005","Sofia Wilsson","151585"],["131017-0050","Carl Nilsson","332356"]]}},{"id":90,"description":"Ta fram namn och kapacitet på rum som har använts av läraren Bo Åkerman eller av läraren Carl Nordin (eller av båda)!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24],["Tellus",32]]}},{"id":91,"description":"Ta fram namn och kapacitet på rum som har använts för kursen \"Logik\" eller för kursen \"Java, fortsättningskurs\" (eller för båda)!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Tellus",32]]}}]},{"category_id":14,"display_number":14,"questions":[{"id":92,"description":"Ta fram personnummer, namn och ort på studenter som har läst både kursen \"Fysisk databasdesign\" och kursen \"Logisk databasdesign\"!","display_sequence":"A","result":{"columns":["personnummer","namn","ort"],"values":[["121017-0006","Siw Björk","Kista"],["121017-0008","Kurt Grahn","Bro"]]}},{"id":93,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen både i rum Orion och i rum Jupiter!","display_sequence":"B","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0002","Ann Stål","373789"],["121017-0005","Lars Holm","203045"],["121017-0006","Siw Björk","452678"],["121017-0008","Kurt Grahn","192292"],["131017-0051","Eva Jung","449867"]]}},{"id":94,"description":"Ta fram personnummer, namn och tjänsterum på lärare som har hållit både kursen \"Logisk databasdesign\" och kursen \"Databasmetodik\"!","display_sequence":"C","result":{"columns":["personnummer","namn","tjänsterum"],"values":[["111017-0004","Lena Svensson",605],["111017-0005","Sofia Wilsson",622]]}},{"id":95,"description":"Ta fram namn och kapacitet på rum som har använts av både läraren Lena Svensson och läraren Bo Åkerman!","display_sequence":"D","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12],["Orion",24],["Saturnus",24]]}},{"id":96,"description":"Ta fram namn och kapacitet på rum som har använts för både kursen \"Logik\" och kursen \"Java, grundkurs\"!","display_sequence":"E","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":97,"description":"Ta fram personnummer, namn, tjänsterum och telefon på lärare som har hållit kurstillfällen både i rum Jupiter och i rum Sirius!","display_sequence":"F","result":{"columns":["personnummer","namn","tjänsterum","telefon"],"values":[["111017-0004","Lena Svensson",605,"151556"],["111017-0005","Sofia Wilsson",622,"151585"]]}}]},{"category_id":15,"display_number":15,"questions":[{"id":98,"description":"Ta fram personnummer, namn och telefon på studenter som har deltagit i kurstillfällen ledda av samtliga lärare från Södertälje!","display_sequence":"A","result":{"columns":["personnummer","namn","telefon"],"values":[["121017-0001","Bo Dahl","163578"],["121017-0005","Lars Holm","203045"],["121017-0007","Sigge Ehn","245578"],["121017-0004","Robert Ahl","123435"]]}},{"id":99,"description":"Ta fram namn och kapacitet på rum som har använts av samtliga lärare från Södertälje!","display_sequence":"B","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":100,"description":"Ta fram namn och kapacitet på rum som har använts för samtliga kurser som kostar under 5000!","display_sequence":"C","result":{"columns":["namn","antalplatser"],"values":[["Jupiter",12]]}},{"id":101,"description":"Ta fram personnummer, namn och telefon på lärare som har hållit kurstillfällen av samtliga kurser på högst tre veckor!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon"],"values":[["111017-0005","Sofia Wilsson","151585"]]}}]},{"category_id":16,"display_number":16,"questions":[{"id":102,"description":"Ta fram antal studenter från Kista för varje kurstillfälle! Visa kurskod, startdatum och antal studenter! Även kurstillfällen utan studenter från Kista ska visas!","display_sequence":"A","result":{"columns":["kurs","startdatum","antal"],"values":[["DBM1","2008-04-02T00:00:00.000Z",1],["DBM1","2009-01-28T00:00:00.000Z",0],["DBM1","2010-02-15T00:00:00.000Z",1],["DBM1","2010-09-22T00:00:00.000Z",1],["FDBD","2008-05-09T00:00:00.000Z",1],["Java1","2008-03-06T00:00:00.000Z",0],["Java1","2008-05-06T00:00:00.000Z",2],["Java1","2008-09-02T00:00:00.000Z",0],["Java1","2010-05-01T00:00:00.000Z",2],["Java1","2011-05-01T00:00:00.000Z",0],["Java2","2008-04-16T00:00:00.000Z",3],["Java2","2009-01-22T00:00:00.000Z",1],["Java2","2010-04-11T00:00:00.000Z",2],["LDBD","2008-05-06T00:00:00.000Z",1],["LDBD","2008-09-02T00:00:00.000Z",1],["LDBD","2010-09-24T00:00:00.000Z",0],["Log1","2008-04-16T00:00:00.000Z",1],["Log1","2009-09-17T00:00:00.000Z",1],["Log1","2010-05-01T00:00:00.000Z",0]]}},{"id":103,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Logisk databasdesign\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"B","result":{"columns":["personnummer","namn","ort","antal"],"values":[["111017-0001","Anders Ödman","Sollentuna",0],["121017-0001","Bo Dahl","Bromma",1],["121017-0002","Ann Stål","Kista",0],["121017-0003","Ebba Ryd","Bromma",0],["121017-0004","Robert Ahl","Kista",0],["121017-0005","Lars Holm","Solna",0],["121017-0006","Siw Björk","Kista",1],["121017-0007","Sigge Ehn","Kista",1],["121017-0008","Kurt Grahn","Bro",2],["121017-0009","Eva Jung","Solna",0],["121017-0010","Lola Frid","Täby",0],["121018-0040","Britt Maj","Södertälje",1],["121117-0041","Eva Berglund","Södertälje",1],["131017-0050","Carl Nilsson","Solna",1],["131017-0051","Eva Jung","Solna",0],["131017-0052","Lars Holm","Solna",0],["131017-0053","Bo Dahl","Täby",0]]}},{"id":104,"description":"Ta fram antal gånger som varje student har deltagit i kursen \"Java, grundkurs\"! Visa studentens personnummer, namn och ort samt antalet! Även studenter som inte har deltagit i kursen ska visas!","display_sequence":"C","result":{"columns":["personnummer","namn","ort","antal"],"values":[["111017-0001","Anders Ödman","Sollentuna",0],["121017-0001","Bo Dahl","Bromma",2],["121017-0002","Ann Stål","Kista",1],["121017-0003","Ebba Ryd","Bromma",1],["121017-0004","Robert Ahl","Kista",0],["121017-0005","Lars Holm","Solna",0],["121017-0006","Siw Björk","Kista",2],["121017-0007","Sigge Ehn","Kista",1],["121017-0008","Kurt Grahn","Bro",2],["121017-0009","Eva Jung","Solna",2],["121017-0010","Lola Frid","Täby",1],["121018-0040","Britt Maj","Södertälje",0],["121117-0041","Eva Berglund","Södertälje",0],["131017-0050","Carl Nilsson","Solna",0],["131017-0051","Eva Jung","Solna",1],["131017-0052","Lars Holm","Solna",0],["131017-0053","Bo Dahl","Täby",0]]}},{"id":105,"description":"Ta fram antal gånger som varje lärare har hållit kursen \"Java, grundkurs\"! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kursen ska visas!","display_sequence":"D","result":{"columns":["personnummer","namn","telefon","tjänsterum","antal"],"values":[["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,3],["111017-0003","Carl Nordin","151553",603,2],["111017-0004","Lena Svensson","151556",605,0],["111017-0005","Sofia Wilsson","151585",622,0],["131017-0050","Carl Nilsson","332356",558,0]]}},{"id":106,"description":"Ta fram antal kurstillfällen som varje lärare har hållit med start under år 2010! Visa lärarens personnummer, namn, telefon och tjänsterum samt antalet! Även lärare som inte har hållit kurstillfällen under 2010 ska visas!","display_sequence":"E","result":{"columns":["personnummer","namn","telefon","tjänsterum","antal"],"values":[["111017-0001","Anders Ödman","151576",634,0],["111017-0002","Bo Åkerman","151526",604,1],["111017-0003","Carl Nordin","151553",603,1],["111017-0004","Lena Svensson","151556",605,2],["111017-0005","Sofia Wilsson","151585",622,0],["131017-0050","Carl Nilsson","332356",558,2]]}},{"id":107,"description":"Ta fram antal kurstillfällen med start under år 2008 för varje student! Visa studentens personnummer, namn, telefon och ort samt antalet! Även studenter som inte har deltagit i kurstillfällen under 2008 ska visas!","display_sequence":"F","result":{"columns":["personnummer","namn","telefon","ort","antal"],"values":[["111017-0001","Anders Ödman","151576","Sollentuna",0],["121017-0001","Bo Dahl","163578","Bromma",4],["121017-0002","Ann Stål","373789","Kista",3],["121017-0003","Ebba Ryd","325305","Bromma",3],["121017-0004","Robert Ahl","123435","Kista",1],["121017-0005","Lars Holm","203045","Solna",2],["121017-0006","Siw Björk","452678","Kista",4],["121017-0007","Sigge Ehn","245578","Kista",2],["121017-0008","Kurt Grahn","192292","Bro",3],["121017-0009","Eva Jung","131187","Solna",2],["121017-0010","Lola Frid","723384","Täby",2],["121018-0040","Britt Maj","982355","Södertälje",0],["121117-0041","Eva Berglund","774355","Södertälje",0],["131017-0050","Carl Nilsson","332356","Solna",1],["131017-0051","Eva Jung","449867","Solna",1],["131017-0052","Lars Holm","665844","Solna",0],["131017-0053","Bo Dahl","770691","Täby",0]]}}]},{"category_id":17,"display_number":17,"questions":[{"id":108,"description":"Ta fram information om kurstillfällen som ingen student från Solna har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"A","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["DBM1","Databasmetodik","2008-04-02T00:00:00.000Z","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-05-06T00:00:00.000Z","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z","Sirius","Sofia Wilsson"],["FDBD","Fysisk databasdesign","2008-05-09T00:00:00.000Z","Jupiter","Lena Svensson"],["Log1","Logik","2009-09-17T00:00:00.000Z","Jupiter","Sofia Wilsson"],["DBM1","Databasmetodik","2010-02-15T00:00:00.000Z","Sirius","Lena Svensson"],["Java1","Java, grundkurs","2010-05-01T00:00:00.000Z","Saturnus","Carl Nordin"],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}},{"id":109,"description":"Ta fram information om kurstillfällen som ingen student från Kista har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"B","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Java1","Java, grundkurs","2008-03-06T00:00:00.000Z","Tellus","Bo Åkerman"],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Bo Åkerman"],["LDBD","Logisk databasdesign","2010-09-24T00:00:00.000Z","Saturnus","Lena Svensson"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}},{"id":110,"description":"Ta fram information om kurstillfällen som ingen funktionshindrad student har deltagit i! Visa kurskod, kursnamn, startdatum, rumsnamn och lärarnamn!","display_sequence":"C","result":{"columns":["kurs","namn","startdatum","namn","namn"],"values":[["Log1","Logik","2008-04-16T00:00:00.000Z","Jupiter","Carl Nordin"],["LDBD","Logisk databasdesign","2008-05-06T00:00:00.000Z","Sirius","Sofia Wilsson"],["Java1","Java, grundkurs","2008-09-02T00:00:00.000Z","Tellus","Carl Nordin"],["DBM1","Databasmetodik","2009-01-28T00:00:00.000Z","Jupiter","Sofia Wilsson"],["Log1","Logik","2010-05-01T00:00:00.000Z","Jupiter","Bo Åkerman"],["Java1","Java, grundkurs","2011-05-01T00:00:00.000Z","Saturnus","Bo Åkerman"]]}}]}]} \ No newline at end of file diff --git a/scripts/generate-erd.ts b/scripts/generate-erd.ts index 8d53ef0..c4028bc 100644 --- a/scripts/generate-erd.ts +++ b/scripts/generate-erd.ts @@ -1,5 +1,6 @@ /** - * ERD generator: produces light/dark SVG ERD diagrams from a .sqlite3 file. + * ERD generator: produces light/dark SVG ERD diagrams from database files. + * Supports both SQLite (.sqlite3 binary) and PostgreSQL (.sql text via PGLite). * Uses the Edwinexd/sqlite-erd package for schema extraction, DOT generation, * and themed SVG coloring, with jsdom providing browser APIs in Node.js. * @@ -11,6 +12,8 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync } from import { join } from "path"; import { JSDOM } from "jsdom"; import type { SqlJsStatic } from "sql.js"; +import type { PGlite } from "@electric-sql/pglite"; +import type { EngineType } from "../src/i18n/languages"; // ── CLI args ─────────────────────────────────────────────────── const args = process.argv.slice(2); @@ -29,24 +32,42 @@ if ((!dbPath || !outDir) && !generateAll) { process.exit(1); } -/** Discover all language directories that contain data.sqlite3 */ -function discoverLanguageDirs(): { db: string; out: string }[] { +interface Target { + db: string; + out: string; + engine: EngineType; +} + +/** Discover all language directories that contain data.sqlite3 or data.sql */ +function discoverLanguageDirs(): Target[] { const langRoot = join(__dirname, "..", "public", "languages"); if (!existsSync(langRoot)) return []; return readdirSync(langRoot, { withFileTypes: true }) .filter(d => d.isDirectory()) - .map(d => ({ - db: join(langRoot, d.name, "data.sqlite3"), - out: join(langRoot, d.name), - })) - .filter(({ db }) => existsSync(db)); + .flatMap((d): Target[] => { + const sqlitePath = join(langRoot, d.name, "data.sqlite3"); + const sqlPath = join(langRoot, d.name, "data.sql"); + if (existsSync(sqlitePath)) { + return [{ db: sqlitePath, out: join(langRoot, d.name), engine: "sqlite" }]; + } + if (existsSync(sqlPath)) { + return [{ db: sqlPath, out: join(langRoot, d.name), engine: "postgresql" }]; + } + return []; + }); } -// ── Generate ERD for a single database ──────────────────────── -async function generateErd( +type ErdDeps = { + executorToLayout: typeof import("sqlite-erd/src/utils").executorToLayout; + dotToSvg: typeof import("sqlite-erd/src/utils").dotToSvg; + colorErdSVG: typeof import("sqlite-erd/src/utils").colorErdSVG; +}; + +// ── Generate ERD for a SQLite database ───────────────────────── +async function generateErdSqlite( dbFilePath: string, outputDir: string, - deps: { SQL: SqlJsStatic; executorToLayout: typeof import("sqlite-erd/src/utils").executorToLayout; dotToSvg: typeof import("sqlite-erd/src/utils").dotToSvg; colorErdSVG: typeof import("sqlite-erd/src/utils").colorErdSVG }, + deps: ErdDeps & { SQL: SqlJsStatic }, ) { const { SQL, executorToLayout, dotToSvg, colorErdSVG } = deps; const dbData = readFileSync(dbFilePath); @@ -58,7 +79,7 @@ async function generateErd( return res[0]; }; - console.log(`Building layout from ${dbFilePath}...`); + console.log(`Building layout from ${dbFilePath} (sqlite)...`); const layout = executorToLayout(executor); const dot = layout.getDot(); @@ -79,6 +100,269 @@ async function generateErd( db.close(); } +// ── PostgreSQL PRAGMA translation layer ──────────────────────── +/** + * Pre-populates the PG executor cache with all data needed by executorToLayout. + * This is necessary because executorToLayout expects a synchronous executor, + * but PGlite is async. + */ +async function buildPgExecutorCache(pgDb: PGlite): Promise<(query: string) => { columns: string[]; values: unknown[][] }> { + const cache: Record = {}; + + function cacheResult(key: string, columns: string[], values: unknown[][]) { + cache[key] = { columns, values }; + } + + // 1. Get all table names (equivalent to sqlite_master query) + const tablesQuery = "SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'"; + const tablesRes = await pgDb.query<{ table_name: string }>( + "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE' ORDER BY table_name" + ); + const tableNames = tablesRes.rows.map(r => r.table_name); + cacheResult(tablesQuery, ["name"], tableNames.map(n => [n])); + + for (const tableName of tableNames) { + const escapedName = `"${tableName.replace(/"/g, '""')}"`; + + // 2. PRAGMA table_info equivalent + const tableInfoKey = `PRAGMA table_info(${escapedName})`; + const colsRes = await pgDb.query<{ + column_name: string; + ordinal_position: number; + data_type: string; + is_nullable: string; + column_default: string | null; + }>( + `SELECT column_name, ordinal_position, UPPER(data_type) as data_type, is_nullable, column_default + FROM information_schema.columns + WHERE table_schema = 'public' AND table_name = $1 + ORDER BY ordinal_position`, + [tableName] + ); + + // Get primary key columns for this table + const pkRes = await pgDb.query<{ column_name: string; ordinal_position: number }>( + `SELECT kcu.column_name, kcu.ordinal_position + FROM information_schema.table_constraints tc + JOIN information_schema.key_column_usage kcu + ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema + WHERE tc.table_schema = 'public' AND tc.table_name = $1 AND tc.constraint_type = 'PRIMARY KEY' + ORDER BY kcu.ordinal_position`, + [tableName] + ); + const pkColumns = new Set(pkRes.rows.map(r => r.column_name)); + + // table_info columns: cid, name, type, notnull, dflt_value, pk + cacheResult(tableInfoKey, + ["cid", "name", "type", "notnull", "dflt_value", "pk"], + colsRes.rows.map((r, i) => [ + i, // cid + r.column_name, // name + r.data_type, // type + r.is_nullable === "NO" ? 1 : 0, // notnull + r.column_default, // dflt_value + pkColumns.has(r.column_name) ? 1 : 0 // pk + ]) + ); + + // 3. PRAGMA foreign_key_list equivalent + const fkListKey = `PRAGMA foreign_key_list(${escapedName})`; + const fkRes = await pgDb.query<{ + constraint_name: string; + ref_table: string; + column_name: string; + ref_column: string; + update_rule: string; + delete_rule: string; + }>( + `SELECT + tc.constraint_name, + ccu.table_name AS ref_table, + kcu.column_name, + ccu.column_name AS ref_column, + rc.update_rule, + rc.delete_rule + FROM information_schema.table_constraints tc + JOIN information_schema.key_column_usage kcu + ON tc.constraint_name = kcu.constraint_name AND tc.table_schema = kcu.table_schema + JOIN information_schema.constraint_column_usage ccu + ON tc.constraint_name = ccu.constraint_name AND tc.table_schema = ccu.table_schema + JOIN information_schema.referential_constraints rc + ON tc.constraint_name = rc.constraint_name AND tc.table_schema = rc.constraint_schema + WHERE tc.table_schema = 'public' AND tc.table_name = $1 AND tc.constraint_type = 'FOREIGN KEY' + ORDER BY tc.constraint_name, kcu.ordinal_position`, + [tableName] + ); + + // Group by constraint name to assign sequential IDs + const fkGroups: Record = {}; + for (const row of fkRes.rows) { + if (!fkGroups[row.constraint_name]) fkGroups[row.constraint_name] = []; + fkGroups[row.constraint_name].push(row); + } + + const fkValues: unknown[][] = []; + let fkId = 0; + for (const [, rows] of Object.entries(fkGroups)) { + for (let seq = 0; seq < rows.length; seq++) { + const r = rows[seq]; + fkValues.push([ + fkId, // id + seq, // seq + r.ref_table, // table + r.column_name, // from + r.ref_column, // to + mapPgAction(r.update_rule), // on_update + mapPgAction(r.delete_rule), // on_delete + "NONE", // match + ]); + } + fkId++; + } + cacheResult(fkListKey, + ["id", "seq", "table", "from", "to", "on_update", "on_delete", "match"], + fkValues + ); + + // 4. PRAGMA index_list equivalent + const indexListKey = `PRAGMA index_list(${escapedName})`; + const idxRes = await pgDb.query<{ + indexname: string; + indexdef: string; + }>( + "SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = 'public' AND tablename = $1", + [tableName] + ); + + // Also check which indexes are unique and which are pk + const idxDetailRes = await pgDb.query<{ + index_name: string; + is_unique: boolean; + is_primary: boolean; + }>( + `SELECT + i.relname AS index_name, + ix.indisunique AS is_unique, + ix.indisprimary AS is_primary + FROM pg_index ix + JOIN pg_class t ON t.oid = ix.indrelid + JOIN pg_class i ON i.oid = ix.indexrelid + JOIN pg_namespace n ON n.oid = t.relnamespace + WHERE n.nspname = 'public' AND t.relname = $1`, + [tableName] + ); + + const idxDetails: Record = {}; + for (const r of idxDetailRes.rows) { + idxDetails[r.index_name] = { isUnique: r.is_unique, isPrimary: r.is_primary }; + } + + const indexListValues: unknown[][] = []; + for (let seq = 0; seq < idxRes.rows.length; seq++) { + const r = idxRes.rows[seq]; + const detail = idxDetails[r.indexname] || { isUnique: false, isPrimary: false }; + indexListValues.push([ + seq, // seq + r.indexname, // name + detail.isUnique ? 1 : 0, // unique + detail.isPrimary ? "pk" : "c", // origin + 0, // partial + ]); + } + cacheResult(indexListKey, + ["seq", "name", "unique", "origin", "partial"], + indexListValues + ); + + // 5. PRAGMA index_info for each index + for (const idxRow of idxRes.rows) { + const indexName = idxRow.indexname; + const escapedIdx = `"${indexName.replace(/"/g, '""')}"`; + const indexInfoKey = `PRAGMA index_info(${escapedIdx})`; + + const indexColsRes = await pgDb.query<{ + attnum: number; + attname: string; + }>( + `SELECT a.attnum, a.attname + FROM pg_index ix + JOIN pg_class i ON i.oid = ix.indexrelid + JOIN pg_attribute a ON a.attrelid = ix.indrelid AND a.attnum = ANY(ix.indkey) + JOIN pg_namespace n ON n.oid = i.relnamespace + WHERE n.nspname = 'public' AND i.relname = $1 + ORDER BY a.attnum`, + [indexName] + ); + + cacheResult(indexInfoKey, + ["seqno", "cid", "name"], + indexColsRes.rows.map((r, seq) => [ + seq, // seqno + r.attnum - 1, // cid (0-based) + r.attname, // name + ]) + ); + } + } + + return (query: string) => { + const cached = cache[query]; + if (cached) return cached; + // Return empty result for unknown queries + console.warn(`PG executor: uncached query, returning empty: ${query}`); + return { columns: [] as string[], values: [] as unknown[][] }; + }; +} + +/** Map PostgreSQL referential action names to SQLite-style action names */ +function mapPgAction(action: string): string { + switch (action) { + case "CASCADE": return "CASCADE"; + case "SET NULL": return "SET NULL"; + case "SET DEFAULT": return "SET DEFAULT"; + case "RESTRICT": return "RESTRICT"; + case "NO ACTION": return "NO ACTION"; + default: return action; + } +} + +// ── Generate ERD for a PostgreSQL database ───────────────────── +async function generateErdPostgresql( + sqlFilePath: string, + outputDir: string, + deps: ErdDeps, +) { + const { executorToLayout, dotToSvg, colorErdSVG } = deps; + + const { PGlite } = await import("@electric-sql/pglite"); + const pgDb = new PGlite(); + + const sqlContent = readFileSync(sqlFilePath, "utf-8"); + console.log(`Loading SQL into PGLite from ${sqlFilePath}...`); + await pgDb.exec(sqlContent); + + console.log(`Building layout from ${sqlFilePath} (postgresql)...`); + const executor = await buildPgExecutorCache(pgDb); + const layout = executorToLayout(executor); + const dot = layout.getDot(); + + const rawSvg = await dotToSvg(dot); + + if (!existsSync(outputDir)) { + mkdirSync(outputDir, { recursive: true }); + } + + const lightSvg = colorErdSVG(rawSvg, false); + writeFileSync(join(outputDir, "db_layout_light.svg"), lightSvg); + console.log("Wrote db_layout_light.svg"); + + const darkSvg = colorErdSVG(rawSvg, true); + writeFileSync(join(outputDir, "db_layout_dark.svg"), darkSvg); + console.log("Wrote db_layout_dark.svg"); + + await pgDb.close(); +} + // ── Main ─────────────────────────────────────────────────────── async function main() { // Polyfill browser globals via jsdom (needed by sqlite-erd's colorErdSVG) @@ -105,16 +389,25 @@ async function main() { g.SVGSVGElement = makeSvgCheck("svg"); const { executorToLayout, dotToSvg, colorErdSVG } = await import("sqlite-erd/src/utils"); - const initSqlJs = (await import("sql.js")).default; - const SQL = await initSqlJs(); - const deps = { SQL, executorToLayout, dotToSvg, colorErdSVG }; + const erdDeps = { executorToLayout, dotToSvg, colorErdSVG }; - const targets = generateAll + const targets: Target[] = generateAll ? discoverLanguageDirs() - : [{ db: dbPath!, out: outDir! }]; + : [{ db: dbPath!, out: outDir!, engine: (dbPath!.endsWith(".sql") ? "postgresql" : "sqlite") as EngineType }]; + + // Only init sql.js if we have sqlite targets + let SQL: SqlJsStatic | null = null; + if (targets.some(t => t.engine === "sqlite")) { + const initSqlJs = (await import("sql.js")).default; + SQL = await initSqlJs(); + } - for (const { db, out } of targets) { - await generateErd(db, out, deps); + for (const target of targets) { + if (target.engine === "postgresql") { + await generateErdPostgresql(target.db, target.out, erdDeps); + } else { + await generateErdSqlite(target.db, target.out, { ...erdDeps, SQL: SQL! }); + } } console.log("Done!"); diff --git a/scripts/generate-language.ts b/scripts/generate-language.ts index 9c216d1..c0a5d1d 100644 --- a/scripts/generate-language.ts +++ b/scripts/generate-language.ts @@ -1,5 +1,8 @@ /** - * Language generator: produces per-language questionpool.json and data.sqlite3. + * Language generator: produces per-language questionpool.json and database data files. + * + * For SQLite-engine languages: outputs data.sqlite3 (binary). + * For PostgreSQL-engine languages: outputs data.sql (text dump). * * Usage: npx tsx scripts/generate-language.ts --lang [--password | --plain] * or: npx tsx scripts/generate-language.ts --all [--password | --plain] @@ -11,6 +14,7 @@ import { join } from "path"; import type { SqlJsStatic } from "sql.js"; import type { OracleData } from "../data/oracle-types"; import type { LanguageDefinition, CanonicalTable } from "../languages/types"; +import { normalizePgValue } from "../src/database/pgNormalize"; // ── CLI argument parsing ─────────────────────────────────────── const args = process.argv.slice(2); @@ -88,12 +92,11 @@ function getPersonAddress(lang: LanguageDefinition, personIndex: number): string return `${lang.streets[person.streetIndex]} ${person.streetSuffix}`; } -// ── SQL generation ───────────────────────────────────────────── +// ── SQL generation (SQLite) ───────────────────────────────────── function generateCreateTableSQL(lang: LanguageDefinition): string { const t = lang.tables; const c = lang.columns; - // We need to reproduce the exact same schema structure with translated names const statements: string[] = []; // Person @@ -122,6 +125,41 @@ function generateCreateTableSQL(lang: LanguageDefinition): string { return statements.join("\n"); } +// ── SQL generation (PostgreSQL) ───────────────────────────────── +function generateCreateTablePgSQL(lang: LanguageDefinition): string { + const t = lang.tables; + const c = lang.columns; + + // No double-quoting: PG lowercases unquoted identifiers, which matches how + // oracle queries reference tables/columns (also unquoted). + const statements: string[] = []; + + // Person + statements.push(`CREATE TABLE ${t.Person} (${c.Person.id} TEXT NOT NULL, ${c.Person.name} TEXT NOT NULL, ${c.Person.address} TEXT NOT NULL, ${c.Person.postalCode} TEXT NOT NULL, ${c.Person.city} TEXT NOT NULL, ${c.Person.phone} TEXT NOT NULL, PRIMARY KEY (${c.Person.id}));`); + + // Room + statements.push(`CREATE TABLE ${t.Room} (${c.Room.id} INTEGER NOT NULL, ${c.Room.name} TEXT NOT NULL, ${c.Room.capacity} INTEGER NOT NULL, PRIMARY KEY (${c.Room.id}));`); + statements.push(`CREATE UNIQUE INDEX rum_namn ON ${t.Room} (${c.Room.name});`); + + // Student — hasDisability uses BOOLEAN + statements.push(`CREATE TABLE ${t.Student} (${c.Student.id} TEXT NOT NULL, ${c.Student.hasDisability} BOOLEAN NOT NULL, CONSTRAINT STUDENT_PK PRIMARY KEY (${c.Student.id}), CONSTRAINT Student_Person_FK FOREIGN KEY (${c.Student.id}) REFERENCES ${t.Person} (${c.Person.id}) ON DELETE RESTRICT ON UPDATE CASCADE);`); + + // Teacher + statements.push(`CREATE TABLE ${t.Teacher} (${c.Teacher.id} TEXT NOT NULL, ${c.Teacher.officeRoom} INTEGER NOT NULL, CONSTRAINT teacher_pk PRIMARY KEY (${c.Teacher.id}), CONSTRAINT fk_teacher_person FOREIGN KEY (${c.Teacher.id}) REFERENCES ${t.Person} (${c.Person.id}) ON DELETE RESTRICT ON UPDATE CASCADE);`); + + // Course + statements.push(`CREATE TABLE ${t.Course} (${c.Course.code} TEXT NOT NULL, ${c.Course.name} TEXT NOT NULL, ${c.Course.duration} INTEGER NOT NULL, ${c.Course.price} INTEGER NOT NULL, ${c.Course.description} TEXT NOT NULL, PRIMARY KEY (${c.Course.code}));`); + statements.push(`CREATE UNIQUE INDEX kurs_ben ON ${t.Course} (${c.Course.name});`); + + // CourseInstance — startDate uses DATE + statements.push(`CREATE TABLE ${t.CourseInstance} (${c.CourseInstance.course} TEXT NOT NULL, ${c.CourseInstance.startDate} DATE NOT NULL, ${c.CourseInstance.teacher} TEXT NOT NULL, ${c.CourseInstance.room} INTEGER NOT NULL, CONSTRAINT courseinstance_pk PRIMARY KEY (${c.CourseInstance.course}, ${c.CourseInstance.startDate}), CONSTRAINT fk_courseinstance_course FOREIGN KEY (${c.CourseInstance.course}) REFERENCES ${t.Course} (${c.Course.code}) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_teacher FOREIGN KEY (${c.CourseInstance.teacher}) REFERENCES ${t.Teacher} (${c.Teacher.id}) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_courseinstance_room FOREIGN KEY (${c.CourseInstance.room}) REFERENCES ${t.Room} (${c.Room.id}) ON DELETE RESTRICT ON UPDATE CASCADE);`); + + // Participation — startDate uses DATE + statements.push(`CREATE TABLE ${t.Participation} (${c.Participation.student} TEXT NOT NULL, ${c.Participation.course} TEXT NOT NULL, ${c.Participation.startDate} DATE NOT NULL, CONSTRAINT participation_pk PRIMARY KEY (${c.Participation.course}, ${c.Participation.startDate}, ${c.Participation.student}), CONSTRAINT fk_participation_courseinstance FOREIGN KEY (${c.Participation.course}, ${c.Participation.startDate}) REFERENCES ${t.CourseInstance} (${c.CourseInstance.course}, ${c.CourseInstance.startDate}) ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT fk_participation_student FOREIGN KEY (${c.Participation.student}) REFERENCES ${t.Student} (${c.Student.id}) ON DELETE RESTRICT ON UPDATE CASCADE);`); + + return statements.join("\n"); +} + function generateInsertSQL(lang: LanguageDefinition): string { const t = lang.tables; const esc = (s: string) => s.replace(/'/g, "''"); @@ -181,6 +219,65 @@ function generateInsertSQL(lang: LanguageDefinition): string { return statements.join("\n"); } +function generateInsertPgSQL(lang: LanguageDefinition): string { + const t = lang.tables; + const esc = (s: string) => s.replace(/'/g, "''"); + const statements: string[] = []; + + // Persons + for (let i = 0; i < oracle.persons.length; i++) { + const p = oracle.persons[i]; + const name = getPersonName(lang, i); + const address = getPersonAddress(lang, i); + statements.push(`INSERT INTO ${t.Person} VALUES ('${esc(lang.personIds[i])}', '${esc(name)}', '${esc(address)}', '${esc(lang.postalCodes[i])}', '${esc(lang.cities[p.cityIndex])}', '${esc(lang.phones[i])}');`); + } + + // Rooms + for (let i = 0; i < oracle.rooms.length; i++) { + const r = oracle.rooms[i]; + statements.push(`INSERT INTO ${t.Room} VALUES (${r.id}, '${esc(lang.roomNames[i])}', ${r.capacity});`); + } + + // Students — BOOLEAN values + for (let i = 0; i < oracle.persons.length; i++) { + const p = oracle.persons[i]; + if (p.isStudent) { + statements.push(`INSERT INTO ${t.Student} VALUES ('${esc(lang.personIds[i])}', ${p.disability ? "TRUE" : "FALSE"});`); + } + } + + // Teachers + for (let i = 0; i < oracle.persons.length; i++) { + const p = oracle.persons[i]; + if (p.isTeacher) { + statements.push(`INSERT INTO ${t.Teacher} VALUES ('${esc(lang.personIds[i])}', ${p.officeRoom});`); + } + } + + // Courses + for (let i = 0; i < oracle.courses.length; i++) { + const cr = oracle.courses[i]; + const key = cr.key as keyof typeof lang.courseCodes; + statements.push(`INSERT INTO ${t.Course} VALUES ('${esc(lang.courseCodes[key])}', '${esc(lang.courseNames[key])}', ${cr.duration}, ${cr.price}, '${esc(lang.courseDescriptions[key])}');`); + } + + // Course Instances — DATE values + for (const ci of oracle.courseInstances) { + const courseKey = oracle.courses[ci.courseIndex].key as keyof typeof lang.courseCodes; + const teacherId = lang.personIds[ci.teacherPersonIndex]; + statements.push(`INSERT INTO ${t.CourseInstance} VALUES ('${esc(lang.courseCodes[courseKey])}', '${esc(ci.startDate)}', '${esc(teacherId)}', ${oracle.rooms[ci.roomIndex].id});`); + } + + // Participations — DATE values + for (const p of oracle.participations) { + const courseKey = oracle.courses[p.courseIndex].key as keyof typeof lang.courseCodes; + const studentId = lang.personIds[p.studentPersonIndex]; + statements.push(`INSERT INTO ${t.Participation} VALUES ('${esc(studentId)}', '${esc(lang.courseCodes[courseKey])}', '${esc(p.startDate)}');`); + } + + return statements.join("\n"); +} + // ── Query template resolution ────────────────────────────────── function resolveQuery(template: string, lang: LanguageDefinition): string { return template.replace(/\{\{(\w+):([^}]+)\}\}/g, (_, type: string, ref: string) => { @@ -219,20 +316,18 @@ function resolveQuery(template: string, lang: LanguageDefinition): string { }); } -// ── Generate a single language ──────────────────────────────── +// ── Generate: SQLite ──────────────────────────────────────────── type ResultData = { columns: string[]; values: (string | number | null)[][] }; -async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise { - const lang = await loadLanguage(code); - console.log(`Generating language data for: ${lang.displayName} (${lang.code})`); +async function generateSqliteLanguage(lang: LanguageDefinition, SQL: SqlJsStatic): Promise { + console.log(`Generating SQLite data for: ${lang.displayName} (${lang.code})`); const db = new SQL.Database(); - // Create schema and insert data const createSQL = generateCreateTableSQL(lang); const insertSQL = generateInsertSQL(lang); - db.run("PRAGMA foreign_keys = OFF;"); // OFF during bulk insert for performance + db.run("PRAGMA foreign_keys = OFF;"); for (const stmt of createSQL.split(";\n").filter(s => s.trim())) { db.run(stmt + ";"); } @@ -241,31 +336,14 @@ async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise new Date(date).getFullYear()); db.create_function("MONTH", (date: string) => new Date(date).getMonth() + 1); db.create_function("DAY", (date: string) => new Date(date).getDate()); - // Build question pool by running reference queries - const categoryMap = new Map; - }>(); - - let errorCount = 0; - function runQuery(queryTemplate: string): ResultData { const resolvedQuery = resolveQuery(queryTemplate, lang); const res = db.exec(resolvedQuery); if (res.length > 0) { - // Replace expression column names (e.g. "COUNT(student)") with the language's aggregate label const columns = res[0].columns.map(col => /[()]/.test(col) ? lang.aggregateLabel : col ); @@ -274,9 +352,90 @@ async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise { + console.log(`Generating PostgreSQL data for: ${lang.displayName} (${outputCode})`); + + const { PGlite } = await import("@electric-sql/pglite"); + const db = new PGlite(); + + const createSQL = generateCreateTablePgSQL(lang); + const insertSQL = generateInsertPgSQL(lang); + + const fullSQL = createSQL + "\n" + insertSQL; + await db.exec(fullSQL); + + async function runQueryAsync(queryTemplate: string): Promise { + const resolvedQuery = resolveQuery(queryTemplate, lang); + // rowMode "array" preserves duplicate column names; normalization is shared with + // the live engine (src/database/pgNormalize) so the oracle and student results + // are produced identically. + const res = await db.query(resolvedQuery, [], { rowMode: "array" }); + if (res.rows.length > 0 || res.fields.length > 0) { + const columns = res.fields.map(f => + /[()]/.test(f.name) ? lang.aggregateLabel : f.name + ); + const values = (res.rows as unknown[][]).map(row => + row.map((val, i) => normalizePgValue(val, res.fields[i].dataTypeID) as string | number | null) + ); + return { columns, values }; + } + return { columns: [], values: [] }; + } + + const { categories, errorCount } = await buildQuestionPoolAsync(lang, runQueryAsync); + + const outputDir = join(__dirname, "..", "public", "languages", outputCode); + if (!existsSync(outputDir)) mkdirSync(outputDir, { recursive: true }); + + writeQuestionPool(outputDir, lang, categories, errorCount, "postgresql"); + + // SQL dump file + writeFileSync(join(outputDir, "data.sql"), fullSQL, "utf-8"); + console.log(`Wrote data.sql (${fullSQL.length} bytes)`); + + await db.close(); + return errorCount === 0; +} + +// ── Shared question pool building ────────────────────────────── +interface CategoryEntry { + category_id: number; + display_number: number; + questions: Array<{ + id: number; + description: string; + display_sequence: string; + result: ResultData; + alternative_results?: ResultData[]; + }>; +} + +function buildQuestionPool( + lang: LanguageDefinition, + runQuery: (template: string) => ResultData, +): { categories: CategoryEntry[]; errorCount: number } { + const categoryMap = new Map(); + let errorCount = 0; + for (const q of oracle.questions) { const description = lang.questionDescriptions[q.id]; - if (!description) { console.error(`Missing question description for Q${q.id} in language ${lang.code}`); errorCount++; @@ -293,7 +452,6 @@ async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise 0) { alternative_results = []; @@ -302,13 +460,10 @@ async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise 0) { - console.error(`\n${errorCount} error(s) occurred. Generated data may be incomplete.`); + const categories = Array.from(categoryMap.values()).sort((a, b) => a.category_id - b.category_id); + for (const cat of categories) { + cat.questions.sort((a, b) => a.display_sequence.localeCompare(b.display_sequence)); + } + + return { categories, errorCount }; +} + +async function buildQuestionPoolAsync( + lang: LanguageDefinition, + runQuery: (template: string) => Promise, + isPg = true, +): Promise<{ categories: CategoryEntry[]; errorCount: number }> { + const categoryMap = new Map(); + let errorCount = 0; + + for (const q of oracle.questions) { + const description = lang.questionDescriptions[q.id]; + if (!description) { + console.error(`Missing question description for Q${q.id} in language ${lang.code}`); + errorCount++; + continue; + } + + const queryTemplate = (isPg && q.pgQuery) ? q.pgQuery : q.query; + let result: ResultData; + try { + result = await runQuery(queryTemplate); + } catch (e) { + console.error(`Error running query for Q${q.id}: ${(e as Error).message}`); + console.error(` Resolved query: ${resolveQuery(queryTemplate, lang)}`); + errorCount++; + continue; + } + + const altQueries = (isPg && q.pgAlternativeQueries) ? q.pgAlternativeQueries : q.alternativeQueries; + let alternative_results: ResultData[] | undefined; + if (altQueries && altQueries.length > 0) { + alternative_results = []; + for (let i = 0; i < altQueries.length; i++) { + try { + alternative_results.push(await runQuery(altQueries[i])); + } catch (e) { + console.error(`Error running alternative query ${i + 1} for Q${q.id}: ${(e as Error).message}`); + errorCount++; + } + } + if (alternative_results.length === 0) alternative_results = undefined; + } + + if (!categoryMap.has(q.categoryId)) { + categoryMap.set(q.categoryId, { + category_id: q.categoryId, + display_number: q.displayNumber, + questions: [], + }); + } + + categoryMap.get(q.categoryId)!.questions.push({ + id: q.id, + description, + display_sequence: q.displaySequence, + result, + ...(alternative_results ? { alternative_results } : {}), + }); } - // Sort categories and questions - const categories = Array.from(categoryMap.values()) - .sort((a, b) => a.category_id - b.category_id); + const categories = Array.from(categoryMap.values()).sort((a, b) => a.category_id - b.category_id); for (const cat of categories) { cat.questions.sort((a, b) => a.display_sequence.localeCompare(b.display_sequence)); } - // Write output - const outputDir = join(__dirname, "..", "public", "languages", code); - if (!existsSync(outputDir)) { - mkdirSync(outputDir, { recursive: true }); - } + return { categories, errorCount }; +} - // Question pool JSON +function writeQuestionPool( + outputDir: string, + lang: LanguageDefinition, + categories: CategoryEntry[], + errorCount: number, + engine: "sqlite" | "postgresql" = "sqlite", +): void { + const totalQuestions = categories.reduce((sum, c) => sum + c.questions.length, 0); const questionPool = { language: lang.code, + engine, defaultQuery: `SELECT * FROM ${lang.tables.Student};`, questions: categories, }; @@ -356,16 +577,7 @@ async function generateForLanguage(code: string, SQL: SqlJsStatic): Promise 0 ? `, ${errorCount} errors` : ""})`); } // ── Main ─────────────────────────────────────────────────────── @@ -377,7 +589,16 @@ async function main() { let allOk = true; for (const code of codes) { - const ok = await generateForLanguage(code, SQL); + const lang = await loadLanguage(code); + // Skip engine-variant packs (e.g. sv-pg) — we generate those automatically + if (lang.engine === "postgresql") continue; + + // Generate SQLite data + let ok = await generateSqliteLanguage(lang, SQL); + if (!ok) allOk = false; + + // Generate PostgreSQL data (into {code}-pg/ directory) + ok = await generatePgLanguage(lang, `${code}-pg`); if (!ok) allOk = false; } diff --git a/src/App.tsx b/src/App.tsx index 0f38f39..6b59cc0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -16,24 +16,19 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import Editor from "react-simple-code-editor"; import "./App.css"; import ResultTable from "./ResultTable"; import ExportRenderer from "./ExportRenderer"; import QuestionSelector, { Question } from "./QuestionSelector"; -// @ts-expect-error - No types available -import { highlight, languages } from "prismjs/components/prism-core"; -import "prismjs/components/prism-sql"; -import "prismjs/themes/prism.css"; import { format } from "sql-formatter"; import initSqlJs from "sql.js"; import ViewsTable, { View } from "./ViewsTable"; import { raToSQL, RAError } from "./ra-engine/relationalAlgebra"; import RAReference from "./ra-engine/RAReference"; -import { highlightRA } from "./ra-engine/raHighlight"; import RAPreview from "./ra-engine/RAPreview"; +import SqlEditor, { type SqlEditorHandle } from "./SqlEditor"; import { Info, Settings, XCircle, CheckCircle2, Eye, EyeOff } from "lucide-react"; import ChangelogDialog from "./ChangelogDialog"; @@ -58,28 +53,42 @@ import ImportDialog, { ImportDialogHandle } from "./ImportDialog"; import { ParsedSaveData, parseImportFile, getLocalData, detectConflicts } from "./mergeUtils"; import { useLanguage, langKey, getUrlParam, setUrlParam } from "./i18n/context"; import LanguageSelector from "./LanguageSelector"; +import EngineSelector from "./EngineSelector"; import { getQuestion } from "./QuestionSelector"; +import type { DatabaseEngine } from "./database/types"; +import { SqliteEngine } from "./database/sqliteEngine"; +import { PgliteEngine } from "./database/pgliteEngine"; +import { useEditorSettings } from "./useEditorSettings"; +import EditorSettingsDialog from "./EditorSettingsDialog"; + /** Storage key namespaced by editor mode */ function modeKey(base: string, mode: "sql" | "ra"): string { return mode === "ra" ? `ra-${base}` : base; } -/** Get a JSON-parsed list from localStorage, with language and mode namespacing */ -function getStoredList(lang: string, key: string): number[] { - const raw = localStorage.getItem(langKey(lang, key)); +/** Build a localStorage key namespaced by language and engine */ +function engineKey(lang: string, engine: string, key: string): string { + return langKey(lang, `${engine}:${key}`); +} + +/** Get a JSON-parsed list from localStorage, with language+engine+mode namespacing */ +function getStoredList(lang: string, engine: string, key: string): number[] { + const raw = localStorage.getItem(engineKey(lang, engine, key)); return raw ? JSON.parse(raw) : []; } -/** Set a JSON list in localStorage, with language namespacing */ -function setStoredList(lang: string, key: string, value: number[]): void { - localStorage.setItem(langKey(lang, key), JSON.stringify(value)); +/** Set a JSON list in localStorage, with language+engine namespacing */ +function setStoredList(lang: string, engine: string, key: string, value: number[]): void { + localStorage.setItem(engineKey(lang, engine, key), JSON.stringify(value)); } function App() { - const { lang, t, questions, dbArrayBuffer, defaultQuery } = useLanguage(); + const { lang, t, questions, dbData, defaultQuery, engine, setEngine } = useLanguage(); + const { settings: editorSettings, setSettings: setEditorSettings } = useEditorSettings(); const [question, setQuestion] = useState(); - const [database, setDatabase] = useState(); + const [database, setDatabase] = useState(); + const [dbSchema, setDbSchema] = useState>({}); const [error, setError] = useState(null); // flag for correct result query being present but current (which might not be evaluated) is not the same const [correctQueryMismatch, setCorrectQueryMismatch] = useState(false); @@ -106,19 +115,22 @@ function App() { const exportRendererRef = useRef(null); - const editorRef = useRef(null); + const sqlEditorRef = useRef(null); const exportModalRef = useRef(null); const importDialogRef = useRef(null); const [pendingImportData, setPendingImportData] = useState(null); // QuestionSelector needs writtenQuestions and correctQuestions to be able to display the correct state const [writtenQuestions, setWrittenQuestions] = useState(() => - getStoredList(lang, modeKey("writtenQuestions", editorMode)) + getStoredList(lang, engine, modeKey("writtenQuestions", editorMode)) ); const [correctQuestions, setCorrectQuestions] = useState(() => - getStoredList(lang, modeKey("correctQuestions", editorMode)) + getStoredList(lang, engine, modeKey("correctQuestions", editorMode)) ); + /** sql-formatter language based on engine */ + const formatterLang = engine === "postgresql" ? "postgresql" : "sqlite"; + // One-time migration: copy old unnamespaced keys to sv: prefix useEffect(() => { if (localStorage.getItem("i18n-migrated")) return; @@ -149,8 +161,8 @@ function App() { // Reload written/correct questions when language or mode changes useEffect(() => { - setWrittenQuestions(getStoredList(lang, modeKey("writtenQuestions", editorMode))); - setCorrectQuestions(getStoredList(lang, modeKey("correctQuestions", editorMode))); + setWrittenQuestions(getStoredList(lang, engine, modeKey("writtenQuestions", editorMode))); + setCorrectQuestions(getStoredList(lang, engine, modeKey("correctQuestions", editorMode))); }, [lang, editorMode]); const resetResult = useCallback(() => { @@ -167,9 +179,9 @@ function App() { if (question && query !== undefined) { const currentKey = modeKey(`questionId-${question.id}`, editorMode); if (query === defaultQuery || query === "") { - localStorage.removeItem(langKey(lang, currentKey)); + localStorage.removeItem(engineKey(lang, engine, currentKey)); } else { - localStorage.setItem(langKey(lang, currentKey), query); + localStorage.setItem(engineKey(lang, engine, currentKey), query); } } setEditorMode(mode); @@ -179,26 +191,50 @@ function App() { // Load query for the new mode if (question) { const newKey = modeKey(`questionId-${question.id}`, mode); - setQuery(localStorage.getItem(langKey(lang, newKey)) || (mode === "ra" ? "" : defaultQuery)); + setQuery(localStorage.getItem(engineKey(lang, engine, newKey)) || (mode === "ra" ? "" : defaultQuery)); } // Reload progress for the new mode - setWrittenQuestions(getStoredList(lang, modeKey("writtenQuestions", mode))); - setCorrectQuestions(getStoredList(lang, modeKey("correctQuestions", mode))); + setWrittenQuestions(getStoredList(lang, engine, modeKey("writtenQuestions", mode))); + setCorrectQuestions(getStoredList(lang, engine, modeKey("correctQuestions", mode))); }, [resetResult, question, query, editorMode, lang, defaultQuery]); const initDb = useCallback(async () => { - if (!dbArrayBuffer) return; + if (!dbData) return; resetResult(); - const SQL = await initSqlJs({ - locateFile: (file) => `/dist/sql.js/${file}`, - }); - const db = new SQL.Database(new Uint8Array(dbArrayBuffer)); - db.create_function("YEAR", (date: string) => new Date(date).getFullYear()); - db.create_function("MONTH", (date: string) => new Date(date).getMonth() + 1); - db.create_function("DAY", (date: string) => new Date(date).getDate()); - db.exec("PRAGMA foreign_keys = ON;"); + + let db: DatabaseEngine; + if (engine === "postgresql") { + try { + const { PGlite } = await import("@electric-sql/pglite"); + const pg = new PGlite(); + await pg.exec(dbData as string); + db = new PgliteEngine(pg); + } catch (e) { + // PGlite is a multi-MB WASM bundle loaded on demand; a failed fetch/init must + // not leave the app stuck with no usable database. Surface it and fall back to + // the always-available SQLite engine. + console.error("Failed to initialize the PostgreSQL engine:", e); + setError(t("engineLoadFailed")); + setEngine("sqlite"); + return; + } + } else { + const SQL = await initSqlJs({ + locateFile: (file) => `/dist/sql.js/${file}`, + }); + const sqliteDb = new SQL.Database(new Uint8Array(dbData as ArrayBuffer)); + sqliteDb.create_function("YEAR", (date: string) => new Date(date).getFullYear()); + sqliteDb.create_function("MONTH", (date: string) => new Date(date).getMonth() + 1); + sqliteDb.create_function("DAY", (date: string) => new Date(date).getDate()); + sqliteDb.exec("PRAGMA foreign_keys = ON;"); + db = new SqliteEngine(sqliteDb); + } + + // Extract schema for autocomplete + const schema = await db.getSchema(); + setDbSchema(schema); setDatabase(db); - }, [resetResult, dbArrayBuffer]); + }, [resetResult, dbData, engine, t, setEngine]); useEffect(() => { initDb(); @@ -217,6 +253,21 @@ function App() { setUrlParam("q", null); }, [lang, resetResult]); + // On engine change, keep the question but reload query and reset results + const prevEngineRef = useRef(engine); + useEffect(() => { + if (prevEngineRef.current === engine) return; + prevEngineRef.current = engine; + // Reload the query for this question under the new engine context + if (question) { + const key = modeKey(`questionId-${question.id}`, editorMode); + setQuery(localStorage.getItem(engineKey(lang, engine, key)) || (editorMode === "ra" ? "" : defaultQuery)); + } + setViews([]); + setDisplayViewsTable(false); + resetResult(); + }, [engine, question, editorMode, lang, defaultQuery, resetResult]); + // Restore question from URL param when questions become available const urlRestoredRef = useRef(false); useEffect(() => { @@ -232,7 +283,7 @@ function App() { const resolved = getQuestion(q.id, questions); if (resolved) { setQuestion(resolved); - setQuery(localStorage.getItem(langKey(lang, modeKey(`questionId-${resolved.id}`, editorMode))) || (editorMode === "ra" ? "" : defaultQuery)); + setQuery(localStorage.getItem(engineKey(lang, engine, modeKey(`questionId-${resolved.id}`, editorMode))) || (editorMode === "ra" ? "" : defaultQuery)); } } } @@ -243,7 +294,6 @@ function App() { if (question) { setUrlParam("q", `${question.category.display_number}${question.display_sequence}`); } else if (urlRestoredRef.current) { - // Only clear ?q= after initial restore, not during it setUrlParam("q", null); } }, [question]); @@ -259,90 +309,85 @@ function App() { if (question) questionLangRef.current = lang; }, [question, lang]); + // Validate query on change useEffect(() => { if (!database || !question || query === undefined) { return; } - // Don't write to localStorage if lang changed but question hasn't been cleared yet if (questionLangRef.current !== lang) { return; } const wqStorageKey = modeKey("writtenQuestions", editorMode); - let wq = getStoredList(lang, wqStorageKey); + let wq = getStoredList(lang, engine, wqStorageKey); const initialLength = wq.length; const storageKey = modeKey(`questionId-${question.id}`, editorMode); if (query === defaultQuery || query === "") { - localStorage.removeItem(langKey(lang, storageKey)); + localStorage.removeItem(engineKey(lang, engine, storageKey)); wq = wq.filter((id: number) => id !== question.id); } else { - localStorage.setItem(langKey(lang, storageKey), query); + localStorage.setItem(engineKey(lang, engine, storageKey), query); if (!wq.includes(question.id)) { wq.push(question.id); } } if (wq.length !== initialLength) { - setStoredList(lang, wqStorageKey, wq); + setStoredList(lang, engine, wqStorageKey, wq); setWrittenQuestions(wq); } - if (editorMode === "sql") { - try { - // Check for multiple statements - let stmtCount = 0; - for (const stmt of database.iterateStatements(query)) { - stmtCount++; - stmt.free(); - if (stmtCount > 1) { - setError(t("multipleStatements")); - return; - } - } - setError(null); - } catch (e) { - // @ts-expect-error - Error.message is a string - setError(e.message); - } - } else { - // In RA mode, try to parse and validate against database - try { - raToSQL(query, database); - setError(null); - } catch (e) { - if (e instanceof RAError) { - setError(t("raParseError", { message: e.message })); + // Stale check for async validation + let stale = false; + const validate = async () => { + if (editorMode === "sql") { + const errorMsg = await database.validateStatements(query); + if (stale) return; + if (errorMsg === "multiple_statements") { + setError(t("multipleStatements")); + } else if (errorMsg) { + setError(errorMsg); } else { - // @ts-expect-error - Error.message is a string - setError(e.message); + setError(null); + } + } else { + // In RA mode, try to parse and validate against database + try { + await raToSQL(query, database); + if (stale) return; + setError(null); + } catch (e) { + if (stale) return; + if (e instanceof RAError) { + setError(t("raParseError", { message: e.message })); + } else { + setError((e as Error).message); + } } } - } + }; + validate(); + return () => { stale = true; }; }, [database, query, question, lang, defaultQuery, t, editorMode]); - const refreshViews = useCallback((upsert: boolean) => { + const refreshViews = useCallback(async (upsert: boolean) => { if (!database) { return; } - const res = database.exec('SELECT name, sql FROM sqlite_master WHERE type="view"'); - let fetchedViews: View[] = []; - if (res.length !== 0) { - const fetched = res[0].values as string[][]; - fetchedViews = fetched.map(([name, query]) => ({ name, query })); - } + const fetchedViews = await database.getViews(); if (fetchedViews.length - views.length !== 0) { setDisplayViewsTable(true); } if (upsert) { - localStorage.setItem(langKey(lang, "views"), JSON.stringify(fetchedViews)); + localStorage.setItem(engineKey(lang, engine, "views"), JSON.stringify(fetchedViews)); } setViews(fetchedViews); // Recreate missing views from localStorage - const storedViews = localStorage.getItem(langKey(lang, "views")); + const storedViews = localStorage.getItem(engineKey(lang, engine, "views")); if (storedViews) { const savedViews: View[] = JSON.parse(storedViews); const missingViews = savedViews.filter( @@ -351,7 +396,7 @@ function App() { let recreated = 0; for (const view of missingViews) { try { - database.exec(view.query); + await database.exec(view.query); recreated++; } catch (e) { console.warn(`Failed to recreate view "${view.name}":`, (e as Error).message); @@ -363,7 +408,7 @@ function App() { } }, [database, views.length, lang]); - const runQuery = useCallback(() => { + const runQuery = useCallback(async () => { if (!database || query === undefined) { return; } @@ -371,78 +416,71 @@ function App() { let sqlToRun = query; if (editorMode === "ra") { try { - sqlToRun = raToSQL(query, database); + sqlToRun = await raToSQL(query, database); } catch (e) { if (e instanceof RAError) { setError(t("raParseError", { message: e.message })); } else { - // @ts-expect-error - Error.message is a string - setError(e.message); + setError((e as Error).message); } return; } } - const res = database.exec(sqlToRun); + const res = await database.exec(sqlToRun); setIsViewResult(false); setQueryedView(null); setEvaluatedQuery(query); if (res.length !== 0) { const { columns, values } = res[0]; - setResult({ columns, data: values }); + setResult({ columns, data: values as (string | number | Uint8Array | null)[][] }); } else { setResult({columns: [], data: []}); } - refreshViews(true); + await refreshViews(true); } catch (e) { - // @ts-expect-error - Error.message is a string - setError(e.message); + setError((e as Error).message); } }, [database, query, refreshViews, editorMode, t]); - const evalSql = useCallback((sql: string): Result => { + const evalSql = useCallback(async (sql: string): Promise => { if (!database) { return { columns: [], data: [] }; } try { - const res = database.exec(sql); - let result: Result; + const res = await database.exec(sql); if (res.length !== 0) { const { columns, values } = res[0]; - result = { columns, data: values }; - } else { - result = {columns: [], data: []}; + return { columns, data: values as (string | number | Uint8Array | null)[][] }; } - return result; + return { columns: [], data: [] }; } catch (e) { - // @ts-expect-error - Error.message is a string - alert("Error occurred while evaluating SQL Query internally: " + e.message); + alert("Error occurred while evaluating SQL Query internally: " + (e as Error).message); return { columns: [], data: [] }; } }, [database]); - const getViewResult = useCallback((name: string) => { + const getViewResult = useCallback(async (name: string) => { if (!database) { return; } try { const viewQuery = `SELECT * FROM ${name}`; - const res = database.exec(viewQuery); + const res = await database.exec(viewQuery); setIsViewResult(true); setQueryedView(name); setEvaluatedQuery(viewQuery); if (res.length !== 0) { const { columns, values } = res[0]; - setResult({ columns, data: values }); + setResult({ columns, data: values as (string | number | Uint8Array | null)[][] }); } else { setResult({columns: [], data: []}); } } catch (e) { - // @ts-expect-error - Error.message is a string - setError(e.message); + setError((e as Error).message); } }, [database]); - const deleteView = useCallback((name: string) => { + const deleteView = useCallback(async (name: string) => { if (!database) { return; } @@ -451,8 +489,8 @@ function App() { return; } - database.exec(`DROP VIEW ${name}`); - refreshViews(true); + await database.exec(`DROP VIEW ${name}`); + await refreshViews(true); if (isViewResult && queryedView === name) { resetResult(); @@ -482,15 +520,15 @@ function App() { setMatchedResult(matchedAlt ?? question.evaluable_result); const cKey = modeKey(`correctQuestionId-${question.id}`, editorMode); - localStorage.setItem(langKey(lang, cKey), query); + localStorage.setItem(engineKey(lang, engine, cKey), query); setCorrectQueryMismatch(false); setLoadedQuestionCorrect(true); const cqStorageKey = modeKey("correctQuestions", editorMode); - const cq = getStoredList(lang, cqStorageKey); + const cq = getStoredList(lang, engine, cqStorageKey); if (!cq.includes(question.id)) { cq.push(question.id); - setStoredList(lang, cqStorageKey, cq); + setStoredList(lang, engine, cqStorageKey, cq); setCorrectQuestions(cq); } }, [result, question, query, evaluatedQuery, exportingStatus, lang, editorMode]); @@ -498,10 +536,9 @@ function App() { // Save query based on question const loadQuery = useCallback((_oldQuestion: Question | undefined, newQuestion: Question) => { const key = modeKey(`questionId-${newQuestion.id}`, editorMode); - setQuery(localStorage.getItem(langKey(lang, key)) || (editorMode === "ra" ? "" : defaultQuery)); - // This prevents user from ctrl-z'ing to a different question - if (editorRef.current) { - editorRef.current!.session = {history: { stack: [], offset: 0 }}; + setQuery(localStorage.getItem(engineKey(lang, engine, key)) || (editorMode === "ra" ? "" : defaultQuery)); + if (sqlEditorRef.current) { + sqlEditorRef.current.clearHistory(); } }, [setQuery, lang, defaultQuery, editorMode]); @@ -512,7 +549,7 @@ function App() { } const cKey = modeKey(`correctQuestionId-${question.id}`, editorMode); - const correctQuery = localStorage.getItem(langKey(lang, cKey)); + const correctQuery = localStorage.getItem(engineKey(lang, engine, cKey)); if (!correctQuery) { setCorrectQueryMismatch(false); setLoadedQuestionCorrect(false); @@ -522,13 +559,12 @@ function App() { setLoadedQuestionCorrect(true); if (editorMode === "ra") { - // For RA, compare raw text (trimmed) setCorrectQueryMismatch(query.trim() !== correctQuery.trim()); } else { let currentQuery = ""; try { currentQuery = format(query + (query.endsWith(";") ? "" : ";"), { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", @@ -540,7 +576,7 @@ function App() { return; } const correctQueryFormatted = format(correctQuery + (correctQuery?.endsWith(";") ? "" : ";"), { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", @@ -549,7 +585,7 @@ function App() { }); setCorrectQueryMismatch(currentQuery !== correctQueryFormatted); } - }, [database, question, query, lang, editorMode]); + }, [database, question, query, lang, editorMode, formatterLang]); const exportData = useCallback((options?: { include?: number[]}) => { if (!database) { @@ -567,18 +603,20 @@ function App() { output += "/* --- BEGIN Metadata --- */\n"; output += "/* --- BEGIN Save Format Version --- */\n"; - output += "-- 3\n"; + output += "-- 4\n"; output += "/* --- END Save Format Version --- */\n"; output += "/* --- BEGIN Save Language --- */\n"; output += `-- ${lang}\n`; output += "/* --- END Save Language --- */\n"; + output += "/* --- BEGIN Save Engine --- */\n"; + output += `-- ${engine}\n`; + output += "/* --- END Save Engine --- */\n"; output += "/* --- END Metadata --- */\n"; output += "/* --- BEGIN Validation --- */\n"; - // Cache localStorage reads used multiple times below - const storedCorrectIds = getStoredList(lang, "correctQuestions"); - const storedWrittenIds = getStoredList(lang, "writtenQuestions"); + const storedCorrectIds = getStoredList(lang, engine, "correctQuestions"); + const storedWrittenIds = getStoredList(lang, engine, "writtenQuestions"); const formatQuestionIds = (ids: number[]) => ids.map((id) => { const category = questions.find(c => c.questions.some(q => q.id === id))!; @@ -595,7 +633,7 @@ function App() { output += "/* --- BEGIN Views --- */\n"; const viewsString = views.map(view => { let out = format(view.query, { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", @@ -621,13 +659,13 @@ function App() { const questionQueries = sorted.map((id: number) => { const category = questions.find(c => c.questions.some(q => q.id === id))!; const q = category.questions.find(q => q.id === id)!; - const activeQuery = localStorage.getItem(langKey(lang, "correctQuestionId-" + id)); + const activeQuery = localStorage.getItem(engineKey(lang, engine, "correctQuestionId-" + id)); if (!activeQuery) { return ""; } let formatted = `/* --- BEGIN Question ${category.display_number}${q.display_sequence} (REFERENCE: ${q.id}) --- */\n`; formatted += format(activeQuery + (activeQuery.endsWith(";") ? "" : ";"), { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", @@ -648,7 +686,7 @@ function App() { const collectQueries = (ids: number[], keyPrefix: string) => { const queries: { [key: number]: string } = {}; for (const id of ids) { - const q = localStorage.getItem(langKey(lang, keyPrefix + id)); + const q = localStorage.getItem(engineKey(lang, engine, keyPrefix + id)); if (q) queries[id] = q; } return queries; @@ -670,7 +708,6 @@ function App() { output += "/* --- END Raw List Dumps --- */\n"; output += "/* --- END Validation --- */\n"; - // Calculate hash of everything within the validation block const hashValue = sha256(output.slice(output.indexOf("/* --- BEGIN Validation Block --- */"), output.indexOf("/* --- END Validation Block --- */"))); output += `/* --- BEGIN Hash --- */\n-- ${hashValue}\n/* --- END Hash --- */\n`; output += "/* --- END DO NOT EDIT --- */\n"; @@ -681,45 +718,47 @@ function App() { const a = document.createElement("a"); const formattedTimestamp = formatFns(new Date(), "yyyyMMdd_HHmm"); a.href = url; - a.download = `validator_${lang}_${formattedTimestamp}.sql`;; + a.download = `validator_${lang}_${engine}_${formattedTimestamp}.sql`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); - }, [database, views, lang, questions]); + }, [database, views, lang, questions, formatterLang]); - const applyMergedData = useCallback((merged: ParsedSaveData) => { + const applyMergedData = useCallback(async (merged: ParsedSaveData) => { // Clear current data - getStoredList(lang, "writtenQuestions").forEach(id => localStorage.removeItem(langKey(lang, `questionId-${id}`))); - getStoredList(lang, "correctQuestions").forEach(id => localStorage.removeItem(langKey(lang, `correctQuestionId-${id}`))); - localStorage.removeItem(langKey(lang, "writtenQuestions")); - localStorage.removeItem(langKey(lang, "correctQuestions")); + getStoredList(lang, engine, "writtenQuestions").forEach(id => localStorage.removeItem(engineKey(lang, engine, `questionId-${id}`))); + getStoredList(lang, engine, "correctQuestions").forEach(id => localStorage.removeItem(engineKey(lang, engine, `correctQuestionId-${id}`))); + localStorage.removeItem(engineKey(lang, engine, "writtenQuestions")); + localStorage.removeItem(engineKey(lang, engine, "correctQuestions")); // Write merged data for (const [key, value] of Object.entries(merged.rawQueries)) { - localStorage.setItem(langKey(lang, `questionId-${key}`), value); + localStorage.setItem(engineKey(lang, engine, `questionId-${key}`), value); if (question !== undefined && Number(key) === question.id) { setQuery(value); } } for (const [key, value] of Object.entries(merged.correctQueries)) { - localStorage.setItem(langKey(lang, `correctQuestionId-${key}`), value); + localStorage.setItem(engineKey(lang, engine, `correctQuestionId-${key}`), value); } setWrittenQuestions(merged.writtenQuestionIds); setCorrectQuestions(merged.correctQuestionIds); - setStoredList(lang, "writtenQuestions", merged.writtenQuestionIds); - setStoredList(lang, "correctQuestions", merged.correctQuestionIds); + setStoredList(lang, engine, "writtenQuestions", merged.writtenQuestionIds); + setStoredList(lang, engine, "correctQuestions", merged.correctQuestionIds); // Update views in database - for (const view of views) { - database!.exec(`DROP VIEW ${view.name}`); - } - for (const view of merged.views) { - database!.exec(view.query); + if (database) { + for (const view of views) { + await database.exec(`DROP VIEW ${view.name}`); + } + for (const view of merged.views) { + await database.exec(view.query); + } + await refreshViews(true); } - refreshViews(true); }, [database, question, refreshViews, views, lang]); const importData = useCallback(() => { @@ -743,7 +782,7 @@ function App() { } const parsed = parseImportFile(data); setPendingImportData(parsed); - const local = getLocalData(lang); + const local = getLocalData(lang, engine); const analysis = detectConflicts(local, parsed); importDialogRef.current?.open(analysis); }; @@ -771,7 +810,7 @@ function App() { return; } - const toExportQuery = localStorage.getItem(langKey(lang, modeKey(`correctQuestionId-${question.id}`, editorMode))); + const toExportQuery = localStorage.getItem(engineKey(lang, engine, modeKey(`correctQuestionId-${question.id}`, editorMode))); if (!toExportQuery) { return; } @@ -798,90 +837,122 @@ function App() { setExportingStatus(1); - const triggerDownload = (dataUrl: string, filename: string) => { - const byteString = atob(dataUrl.split(",")[1]); - const mimeType = dataUrl.split(",")[0].split(":")[1].split(";")[0]; - const ab = new ArrayBuffer(byteString.length); - const ia = new Uint8Array(ab); - for (let i = 0; i < byteString.length; i++) { - ia[i] = byteString.charCodeAt(i); + // Wait for CodeMirror to render before capturing + const capture = () => { requestAnimationFrame(() => { + if (!exportRendererRef.current) { setExportingStatus(0); return; } + + const triggerDownload = (dataUrl: string, filename: string) => { + const byteString = atob(dataUrl.split(",")[1]); + const mimeType = dataUrl.split(",")[0].split(":")[1].split(";")[0]; + const ab = new ArrayBuffer(byteString.length); + const ia = new Uint8Array(ab); + for (let i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + const blob = new Blob([ab], { type: mimeType }); + const blobUrl = URL.createObjectURL(blob); + + const link = document.createElement("a"); + link.download = filename; + link.href = blobUrl; + link.style.display = "none"; + document.body.appendChild(link); + link.click(); + + setTimeout(() => { + document.body.removeChild(link); + URL.revokeObjectURL(blobUrl); + }, 100); + }; + + // View + if (exportView) { + toPng(exportRendererRef.current, { + canvasWidth: exportRendererRef.current.scrollWidth, + width: exportRendererRef.current.scrollWidth, + canvasHeight: exportRendererRef.current.scrollHeight, + height: exportRendererRef.current.scrollHeight, + pixelRatio: 1 + }).then((dataUrl) => { + triggerDownload(dataUrl, `validator_${exportView.name}.png`); + setExportView(undefined); + setExportingStatus(0); + }); + return; + } + + // Question + if (!question || !exportQuery || !exportQuestion) { + return; } - const blob = new Blob([ab], { type: mimeType }); - const blobUrl = URL.createObjectURL(blob); - - const link = document.createElement("a"); - link.download = filename; - link.href = blobUrl; - link.style.display = "none"; - document.body.appendChild(link); - link.click(); - - setTimeout(() => { - document.body.removeChild(link); - URL.revokeObjectURL(blobUrl); - }, 100); - }; - // View - if (exportView) { - toPng(exportRendererRef.current, { - canvasWidth: exportRendererRef.current.scrollWidth, - width: exportRendererRef.current.scrollWidth, - canvasHeight: exportRendererRef.current.scrollHeight, - height: exportRendererRef.current.scrollHeight, + const exportRenderer = exportRendererRef.current; + toPng(exportRenderer, { + canvasWidth: exportRenderer.scrollWidth, + width: exportRenderer.scrollWidth, + canvasHeight: exportRenderer.scrollHeight, + height: exportRenderer.scrollHeight, pixelRatio: 1 }).then((dataUrl) => { - triggerDownload(dataUrl, `validator_${exportView.name}.png`); - setExportView(undefined); + triggerDownload(dataUrl, `validator_${editorMode === "ra" ? "ra_" : ""}${question.id}_${question.category.display_number}${question.display_sequence}.png`); + setExportQuestion(undefined); + setExportQuery(undefined); setExportingStatus(0); }); + + }); }; // end capture + rAF + capture(); + }, [evaluatedQuery, exportQuery, exportRendererRef, getTheme, isDarkMode, exportingStatus, question, resetResult, setTheme, exportQuestion, exportView]); + + // Export renderer needs sync evalSql — we compute it eagerly when export is triggered + const [exportResult, setExportResult] = useState<{ result: Result; isCorrect: boolean } | null>(null); + const [exportViewResult, setExportViewResult] = useState(null); + + useEffect(() => { + if (!exportQuestion || !exportQuery || !database) { + setExportResult(null); return; } + const compute = async () => { + let sqlForExport = exportQuery; + if (editorMode === "ra") { + try { sqlForExport = await raToSQL(exportQuery, database); } catch { /* use raw */ } + } + const result = await evalSql(sqlForExport); + const correct = isCorrectResult(exportQuestion.evaluable_result, result) || (exportQuestion.alternative_evaluable_results?.some(alt => isCorrectResult(alt, result)) ?? false); + setExportResult({ result, isCorrect: correct }); + }; + compute(); + }, [exportQuestion, exportQuery, editorMode, database, evalSql]); - // Question - if (!question || !exportQuery || !exportQuestion) { + useEffect(() => { + if (!exportView || !database) { + setExportViewResult(null); return; } - - const exportRenderer = exportRendererRef.current; - toPng(exportRenderer, { - canvasWidth: exportRenderer.scrollWidth, - width: exportRenderer.scrollWidth, - canvasHeight: exportRenderer.scrollHeight, - height: exportRenderer.scrollHeight, - pixelRatio: 1 - }).then((dataUrl) => { - triggerDownload(dataUrl, `validator_${editorMode === "ra" ? "ra_" : ""}${question.id}_${question.category.display_number}${question.display_sequence}.png`); - setExportQuestion(undefined); - setExportQuery(undefined); - setExportingStatus(0); - }); - }, [evaluatedQuery, exportQuery, exportRendererRef, getTheme, isDarkMode, exportingStatus, question, resetResult, setTheme, exportQuestion, exportView]); + evalSql(`SELECT * FROM ${exportView.name}`).then(setExportViewResult); + }, [exportView, database, evalSql]); const exportRendererProps = useMemo(() => { - if (!exportQuestion || !exportQuery) return null; - let sqlForExport = exportQuery; - if (editorMode === "ra" && database) { - try { sqlForExport = raToSQL(exportQuery, database); } catch { /* use raw */ } - } - const exportResult = evalSql(sqlForExport); + if (!exportQuestion || !exportQuery || !exportResult) return null; return { - isCorrect: isCorrectResult(exportQuestion.evaluable_result, exportResult) || (exportQuestion.alternative_evaluable_results?.some(alt => isCorrectResult(alt, exportResult)) ?? false), + isCorrect: exportResult.isCorrect, question: exportQuestion, code: exportQuery, - result: exportResult, + result: exportResult.result, mode: editorMode, }; - }, [exportQuestion, exportQuery, editorMode, database, evalSql]); + }, [exportQuestion, exportQuery, exportResult, editorMode]); return (
{exportRendererProps && } - {exportView && } + {exportView && exportViewResult && }
+

SQL Validator

@@ -911,54 +982,60 @@ function App() {
- - - - - - exportImageQuery()} - disabled={!loadedQuestionCorrect} - > - {t("exportPng")} - - importData()}> - {t("importData")} - - exportModalRef.current?.openDialog()}> - {t("exportData")} - - - +
+ + + + + + + exportImageQuery()} + disabled={!loadedQuestionCorrect} + > + {t("exportPng")} + + importData()}> + {t("importData")} + + exportModalRef.current?.openDialog()}> + {t("exportData")} + + + +
- {query === undefined ? - null} - highlight={code => editorMode === "ra" ? highlightRA(code, isDarkMode()) : highlight(code, languages.sql)} - padding={10} - tabSize={2} - className="font-mono text-base w-full dark:bg-slate-800 bg-slate-100 min-h-32 rounded-md" - ref={editorRef} - /> - : - setQuery(code)} - highlight={code => editorMode === "ra" ? highlightRA(code, isDarkMode()) : highlight(code, languages.sql)} - padding={10} - tabSize={2} - className="font-mono text-base w-full dark:bg-slate-800 bg-slate-100 border dark:border-slate-600 border-gray-300 min-h-32 rounded-md" - ref={editorRef} + ref={sqlEditorRef} + value={query ?? (t("selectQuestionComment"))} + onChange={query !== undefined ? setQuery : undefined} + schema={dbSchema} + engine={engine} + isDarkMode={isDarkMode()} + disabled={query === undefined} + readOnly={query === undefined} + editorSettings={editorSettings} + className="font-mono w-full dark:bg-slate-800 bg-slate-100 border dark:border-slate-600 border-gray-300 min-h-32 rounded-md overflow-hidden" /> - } + ) : ( + + )} {editorMode === "ra" && query !== undefined && } @@ -980,7 +1057,9 @@ function App() { )} {editorMode === "ra" ? - : {t("sqlReference")} + : engine === "postgresql" + ? {t("sqlReferencePostgresql")} + : {t("sqlReference")} } @@ -991,7 +1070,7 @@ function App() { variant="outline" onClick={() => { if (!question) return; - setQuery(localStorage.getItem(langKey(lang, modeKey(`correctQuestionId-${question.id}`, editorMode))) || (editorMode === "ra" ? "" : defaultQuery)); + setQuery(localStorage.getItem(engineKey(lang, engine, modeKey(`correctQuestionId-${question.id}`, editorMode))) || (editorMode === "ra" ? "" : defaultQuery)); }} className="border-yellow-500 text-yellow-600 dark:text-yellow-400 hover:bg-yellow-50 dark:hover:bg-yellow-900/20" > @@ -1004,7 +1083,7 @@ function App() { onClick={() => { if (!query) return; setQuery(format(query, { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", @@ -1041,7 +1120,6 @@ function App() { {/* Results Section */} {result && <> {!isViewResult ? question && <> - {/* if correct result else display wrong result */} {isCorrect ? (
@@ -1058,7 +1136,6 @@ function App() { {t("correctButVerify")}

)} - {/* Two different result tables next to each other, actual and expected */}

{t("actual")}

@@ -1076,22 +1153,20 @@ function App() { : <>

{t("viewLabel")} {queryedView}

{t("viewQueryLabel", { name: queryedView || "" })}

- view.name === queryedView) ? views.find(view => view.name === queryedView)!.query : "-- View Deleted", { - language: "sqlite", + language: formatterLang, tabWidth: 2, useTabs: false, keywordCase: "upper", dataTypeCase: "upper", functionCase: "upper", })} - onValueChange={() => null} - highlight={code => highlight(code, languages.sql)} - padding={10} - tabSize={4} - className="font-mono text-base w-full dark:bg-slate-800 bg-slate-100 max-w-4xl min-h-32 rounded-md my-2" + readOnly={true} + engine={engine} + isDarkMode={isDarkMode()} + className="font-mono w-full dark:bg-slate-800 bg-slate-100 max-w-4xl min-h-32 rounded-md my-2 overflow-hidden" />

{t("viewResultLabel", { name: queryedView || "" })}

diff --git a/src/DatabaseLayoutDialog.tsx b/src/DatabaseLayoutDialog.tsx index e30ca61..e33daf9 100644 --- a/src/DatabaseLayoutDialog.tsx +++ b/src/DatabaseLayoutDialog.tsx @@ -9,11 +9,11 @@ import dbLayoutLightFallback from "./db_layout_light.svg"; import dbLayoutLightPngFallback from "./db_layout_light_bg.png"; const DatabaseLayoutDialog = ({ isDarkMode }: { isDarkMode: () => boolean }) => { - const { lang, t } = useLanguage(); + const { lang, engine, t } = useLanguage(); const [open, setOpen] = useState(false); - // Try language-specific ERD, fallback to static imports - const basePath = `/languages/${lang}`; + // Use engine-specific ERD path (PostgreSQL ERDs are in {lang}-pg/) + const basePath = engine === "postgresql" ? `/languages/${lang}-pg` : `/languages/${lang}`; const darkSrc = `${basePath}/db_layout_dark.svg`; const lightSrc = `${basePath}/db_layout_light.svg`; const lightPngSrc = `${basePath}/db_layout_light_bg.png`; diff --git a/src/EditorSettingsDialog.tsx b/src/EditorSettingsDialog.tsx new file mode 100644 index 0000000..a74efd4 --- /dev/null +++ b/src/EditorSettingsDialog.tsx @@ -0,0 +1,68 @@ +import React from "react"; +import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; +import { Checkbox } from "@radix-ui/react-checkbox"; +import { Label } from "@radix-ui/react-label"; +import { Settings2 } from "lucide-react"; +import { Button } from "@/components/ui/button"; +import type { EditorSettings } from "./useEditorSettings"; +import { useLanguage } from "./i18n/context"; + +interface EditorSettingsDialogProps { + settings: EditorSettings; + onSettingsChange: (partial: Partial) => void; +} + +const EditorSettingsDialog: React.FC = ({ settings, onSettingsChange }) => { + const { t } = useLanguage(); + + return ( + + + + + + + {t("editorSettings") || "Editor Settings"} + +
+ onSettingsChange({ autocomplete: v })} + /> + onSettingsChange({ lineNumbers: v })} + /> + onSettingsChange({ highlightActiveLine: v })} + /> +
+
+
+ ); +}; + +function SettingToggle({ label, checked, onChange }: { label: string; checked: boolean; onChange: (v: boolean) => void }) { + const id = label.toLowerCase().replace(/\s+/g, "-"); + return ( +
+ + onChange(v === true)} + className="h-5 w-5 rounded border border-gray-300 dark:border-slate-600 data-[state=checked]:bg-blue-600 data-[state=checked]:border-blue-600 flex items-center justify-center" + > + {checked && } + +
+ ); +} + +export default EditorSettingsDialog; diff --git a/src/EngineSelector.tsx b/src/EngineSelector.tsx new file mode 100644 index 0000000..a50513a --- /dev/null +++ b/src/EngineSelector.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { useLanguage } from "./i18n/context"; +import { AVAILABLE_ENGINES } from "./i18n/languages"; + +const EngineSelector: React.FC = () => { + const { engine, setEngine } = useLanguage(); + + return ( + + ); +}; + +export default EngineSelector; diff --git a/src/ExportRenderer.tsx b/src/ExportRenderer.tsx index 3dde3f2..cd61022 100644 --- a/src/ExportRenderer.tsx +++ b/src/ExportRenderer.tsx @@ -1,14 +1,12 @@ import React from "react"; -import Editor from "react-simple-code-editor"; import { format } from "sql-formatter"; -// @ts-expect-error - No types available -import { highlight, languages } from "prismjs/components/prism-core"; import { Result } from "./utils"; import ResultTable from "./ResultTable"; import { Question } from "./QuestionSelector"; import { View } from "./ViewsTable"; import { useLanguage } from "./i18n/context"; import { renderRAPreview } from "./ra-engine/RAPreview"; +import SqlEditor from "./SqlEditor"; interface ExportRendererProps { query?: { @@ -25,7 +23,8 @@ interface ExportRendererProps { } const ExportRenderer = React.forwardRef(({ query, view }, ref) => { - const { t } = useLanguage(); + const { t, engine } = useLanguage(); + const formatterLang = engine === "postgresql" ? "postgresql" : "sqlite"; if (!query && !view) { return null; @@ -63,23 +62,23 @@ const ExportRenderer = React.forwardRef(({ dangerouslySetInnerHTML={{ __html: renderRAPreview(query.code, true) }} /> ) : ( - null} - highlight={code => highlight(code, languages.sql)} - padding={10} - tabSize={4} - className="font-mono text-xl w-full bg-slate-200 border-2 max-w-4xl min-h-40 border-none my-2" - /> +
+ +
)} {query &&

{t("exportResultLabel")}

diff --git a/src/ImportDialog.tsx b/src/ImportDialog.tsx index af181c6..1a7792d 100644 --- a/src/ImportDialog.tsx +++ b/src/ImportDialog.tsx @@ -80,7 +80,7 @@ function SqlBlock({ code, changedLines, variant }: { code: string; changedLines? const ImportDialog = forwardRef( ({ importedData, onOverwrite, onMergeApply }, ref) => { - const { t, lang, questions } = useLanguage(); + const { t, lang, engine, questions } = useLanguage(); const [isOpen, setIsOpen] = useState(false); const [step, setStep] = useState<"choose" | "resolve">("choose"); const [analysis, setAnalysis] = useState(null); @@ -169,6 +169,11 @@ const ImportDialog = forwardRef( {t("languageMismatchWarning", { fileLang: importedData.language })}

)} + {importedData && importedData.engine !== engine && ( +

+ {t("engineMismatchWarning", { fileEngine: importedData.engine })} +

+ )}