Jeg har følgende tabeller.
- CREATE TABLE Professions(
- [Id] INT NOT NULL PRIMARY KEY,
- [Name] VARCHAR(30) NOT NULL,
- [RequirementID] INT NULL
- )
-
- CREATE TABLE Skills(
- [Id] INT NOT NULL PRIMARY KEY,
- [Name] VARCHAR(30) NOT NULL
- )
-
- CREATE TABLE ProfessionSkills(
- [ProfessionID] INT NOT NULL,
- [SkillID] INT NOT NULL,
- [Cost] INT NOT NULL,
- [MaxLevel] INT NULL,
- PRIMARY KEY(ProfessionID, SkillID)
- )
-
- CREATE TABLE Characters(
- [Id] INT NOT NULL PRIMARY KEY,
- [Name] VARCHAR(50) NOT NULL,
- [Sneaky] SMALLINT NULL
- )
-
-
- CREATE TABLE CharacterSkills(
- [CharacterID] INT NOT NULL,
- [SkillID] INT NOT NULL,
- [Level] SMALLINT NOT NULL,
- PRIMARY KEY(CharacterID, SkillID)
- )
Tabellerne skal bruges til et mindre spil jeg er i gang med. Det jeg har brug for er at lave en samlet oversigt over emner for en given karakter i spillet.
Characters indeholder alle "karakterene" fra spillet samt deres basic stats. Indtil videre har jeg kun sat "Sneaky" ind.
Professions indeholder professioner som er tilgængelige i spillet. Bandit, Bodyguard, mv.
Skills indeholder alle de evner som er tilgængelige.
Jeg har så brug for at lave en oversigt med karakterens samlede stats. Det har jeg gjort på følgende måde.
- SELECT ([Sneaky] + 2 * (SELECT [Level] FROM CharacterSkills)) AS [Sneaky],
- FROM Characters
- WHERE Id = 0
Er der en nemmere måde at gøre dette på? Der kan forekomme flere evner som giver til den samme stat. Så det vil være bøvlet at skulle kode dem ind manuelt.
EDIT: SQL er pt MsSQL, men dette vil nok blive konverteret over til MySQL senere. Dette skylde at jeg pt har en MsSQL express jeg benytter samt MS SQL Manager Express
Indlæg senest redigeret d. 23.01.2011 19:40 af Bruger #6559