2012-06-25 45 views
0

我目前的项目是根据下表生成支出报告。完整的报告显示通过特许经营的零售类别用户的消费$击穿,如从下表中生成支出报告

用户1个

retail_category 1:$ 20

retail_category 2:$ 30

retail_category 3:$ 35

用户2

retail_category 1:$ 10

retail_category 2:$ 15

retail_category 3:$ 5

下面是表:

class User(models.Model): 
    id_user = models.AutoField(primary_key = True) 

class Franchises(models.Model): 
    id_franchise = models.AutoField(primary_key=True) 
    retail_category = models.IntegerField(default=99) # values are 1 to 13 

class Stores(models.Model): 
    id_store = models.AutoField(primary_key=True) 
    franchise = models.ForeignKey(Franchises, db_column='id_franchise') 

class Receipts(models.Model): 
    id_receipt = models.AutoField(primary_key=True) 
    store = models.ForeignKey(Stores, db_column='id_store') 
    user = models.ForeignKey(User, db_column='id_user') 
    grand_total = models.DecimalField(max_digits=19, decimal_places=4) 

我明白任何原始MySQL或django的模型查询。谢谢,

回答

0

希望我翻译你的Django模式规范到原MySQL的正确:

SELECT user, retail_category, SUM(grand_total) 
FROM Receipts 
INNER JOIN Stores ON Receipts.store = Stores.id_store 
INNER JOIN Franchises ON Stores.franchise = Franchises.id_franchise 
GROUP BY user, retail_category; 
+0

它的工作原理,除非你需要内部联接用户对receipts.user ID =用户ID。谢谢 –