2016-03-23 12 views
0

müşteri adı (name) ile masaya (tcount) içinde: müşteriler (Tablo 1) ve siparişlerini (tablo2) table1 olaraken yüksek mertebeden sayımını i nasıl görüntüleneceğini, e ben 2 tablolar oluşturdu

Ben columns(id,name) ve tablo2 oluşturulan columns(oid,customer_id,amount)'u oluşturdum.

Sonraki Ben özellikle müşterilerin toplam miktarını almak için sum() fonksiyonunu kullanılan ve özel bir müşteri tarafından sipariş edilen toplam siparişlerin sayım sonucuna varmak için count() kullanılan ve ben group by kullanarak sırasıyla görüntülenir.

Artık en yüksek siparişleri belirli bir müşteri adıyla nasıl bulacağımı bilmiyorum.

Bu

denedim budur:

select max(name) as aaa,max(tcount) as highorders 
from 
    (SELECT name,sum(orderss.amount) AS tamount,count(orderss.oid) as tcount 
    FROM customers 
    INNER JOIN orderss ON customers.id=orderss.customer_id group by name 
    having tamount > 50 and tcount >= 2 
    ) as ho 
+0

bkz ASC DESC değiştirerek artan bir sipariş alabilirsiniz: https: //dev.mysql .com/doc/refman/5.7/tr/order-by-optimization.html – TT120

+0

İsterseniz, bu basit iki adımlı işlemi izleyerek düşünün: 1. Henüz yapmadıysanız, uygun DDL'leri sağlayın (ve/veya bir sq lfiddle) böylece sorunu daha kolay çoğaltabiliriz. 2. Henüz yapmadıysanız, 1. adımda sağlanan bilgilere karşılık gelen istenen bir sonuç kümesi belirtin. – Strawberry

cevap

0

kullanım order by

select max(name) as aaa,max(tcount) as highorders 
from 
    (SELECT name,sum(orderss.amount) AS tamount,count(orderss.oid) as tcount 
    FROM customers 
    INNER JOIN orderss ON customers.id=orderss.customer_id group by name 
    having tamount > 50 and tcount >= 2 
    ) as ho 
order by field_name DESC 

(Eğer

İlgili konular