外部結合のやり方を教えてください。

39 views
Skip to first unread message

西田成孝

unread,
Mar 9, 2018, 8:05:15 PM3/9/18
to django-ja

下記SQLをQuery_Setで書きたいのですがどうすればよいでしょうか。
    query = "SELECT app_crews.id,app_crews.name,B.price,B.amount" \
   
+ " FROM app_crews" \
   
+ " LEFT OUTER JOIN" \
   
+ " (select app_datas.name_id ,sum(app_datas.price) as price ,sum(app_datas.amount) as amount" \
   
+ " from app_datas" \
   
+ " where app_datas.date = '{}'".format(Today_date) \
   
+ " group by app_datas.name_id" \
   
+ " ) as B" \
   
+ " ON (app_crews.id = B.name_id )"
    test3
= Crews.objects.raw(query)


営業担当者別に業績の集計をだしているのですが、下記の書き方ですと数字が0の担当者は表示されなくなってしまいます。
集計が0の担当も一緒に表示されるようにするにはどのように書けばよいでしょうか。
models.Datas.objects.filter(date=Today_date).values_list('name__name').annotate(price_sum=Sum('price'), ammount_sum=Sum('amount'))



class Crews(models.Model):
    name
= models.CharField(max_length=256)
    age  
= models.IntegerField()


   
def __str__(self):
       
return self.name


class Datas(models.Model):
    name  
= models.ForeignKey(Crews, related_name='datas', verbose_name="担当者")
    price  
= models.IntegerField(verbose_name="金額")
    date  
= models.DateField(default=timezone.now, verbose_name="日付")
    time
= models.TimeField(auto_now_add = True, verbose_name="時間")
    amount
= models.IntegerField(verbose_name="数量")
   
   
def __str__(self):
       
return str(self.date)

Reply all
Reply to author
Forward
0 new messages