2013-10-07 37 views
0

我是SQL的新手,並有一些格式問題。在第一欄中,我有類別生活,食物,交通和每個類別,我有子類別。例如,food.lunch,食品,雜貨店。在SQL中,如何格式化值,所以我有column1value.column2value

現在我想有一個叫做中,我要顯示CATEGORY.SUBCATEGORY

例如詳細的費用新列,food.lunch

我怎樣才能做到這一點?任何幫助?

+0

你在用什麼?甲骨文? SQLServer的? – neutrino

+0

@neutrino SQL Server – Helen

回答

0

你需要組織你的表是這樣的(不是一個面向對象的方法)

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

以及像這樣構建表之後的下一步是什麼? – Helen

+1

看看[這個](http://stackoverflow.com/questions/9004543/recursive-child-parent-queries-in-t-sql)和[this](http://stackoverflow.com/questions/ 5187641/SQL CTE的遞歸返流,家長記錄) – Kermit

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)) 
相關問題