私は SQL を初めて使用し、書式設定に問題があります。列 1 には、生活、食べ物、交通機関のカテゴリがあり、各カテゴリにはサブカテゴリがあります。たとえば、food.lunch、food、食料品などです。
ここで、CATEGORY.SUBCATEGORY を表示する、詳細な経費という新しい列が必要です。
例: food.lunch
どうすればこれを達成できますか?何か助けはありますか?
私は SQL を初めて使用し、書式設定に問題があります。列 1 には、生活、食べ物、交通機関のカテゴリがあり、各カテゴリにはサブカテゴリがあります。たとえば、food.lunch、food、食料品などです。
ここで、CATEGORY.SUBCATEGORY を表示する、詳細な経費という新しい列が必要です。
例: food.lunch
どうすればこれを達成できますか?何か助けはありますか?
このようにテーブルを構造化する必要があります (OOP アプローチではありません)。
categories
-----------------------
id name parent
1 food 0
2 lunch 1
...
3 category 0
4 subcategory 3
このアイデアはどうですか: カテゴリとサブカテゴリを金額で識別するためのレコードを含むテーブル Expenses を作成できます。次に、カテゴリまたはサブカテゴリ別に金額を合計 (SUM) できます。
SELECT Category.Name,SubCategory.Name,SUM(Expense.Amount)
FROM Expense ex INNER JOIN Category cat on (ex.CategoryId = cat.Id)
INNER JOIN SubCategory subcat on (ex.SubCategoryId = subcat.Id)
GROUP BY cat.Name, subcat.Name,ex.Amount
CREATE TABLE Category(
Id int NOT NULL PRIMARY KEY,
Name varchar(50) NOT NULL
PRIMARY KEY (Id),
)
CREATE TABLE SubCategory(
Id int NOT NULL PRIMARY KEY,
CategoryId int,
Name varchar(50) NOT NULL
PRIMARY KEY (Id),
FOREIGN KEY (CategoryId) REFERENCES Category(Id))
CREATE TABLE Expense(
ID NOT NULL PRIMARY KEY,
CategoryId int,
SubCategoryId int,
Amount money
PRIMARY KEY (Id),
FOREIGN KEY (CategoryId) REFERENCES Category(Id)
FOREIGN KEY (SubCategoryId) REFERENCES SubCategory(Id))