在SQL中,如何格式化值,所以我有column1value.column2value

时间:2013-10-07 14:06:09

标签: sql

我是SQL新手并且在格式化方面存在一些问题。在第1栏中,我有生活,食物,交通等类别,在每个类别中,我都有子类别。例如,food.lunch,food,grocery。

现在我想要一个名为详细费用的新列,我要在其中显示CATEGORY.SUBCATEGORY

例如,food.lunch

我怎样才能做到这一点?有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

你需要像这样构建你的表(不是OOP方法)

categories
-----------------------
id  name         parent
1   food         0
2   lunch        1
...
3   category     0
4   subcategory  3

答案 1 :(得分:0)

这个想法怎么样:你可以有一个表包含记录的费用,以识别具有金额的类别和子类别。然后,您可以按类别或子类别总计(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))