지난 6 개월 동안 가입 한 모든 고객을 나열하려면 SQL 쿼리가 필요합니다.SQL?
이것은 내 SQL입니다.
select
c.company_name,
c.phone1,
c.sprovince,
c.scountry,
sum(order_total_amount) as amt_sold,
max(o.order_date) as last_order_date,
customersince
from
tbl_company c
join
tbl_order o
on c.companyid = o.company_id
where
c.companytype like 'Customer'
and
(PERIOD_DIFF(c.customersince,curdate())<6)
group by company_name
order by amt_sold desc
이제는 customersince 열에 null이 있으면 고객의 첫 번째 주문을 확인해야합니다. 지난 6 개월 동안 해당 사용자도 표시해야합니다.
order_date는 tbl_order 테이블에서 사용할 수 있습니다. 고객의 첫 번째 주문은 customer_id의 min (order_date) 그룹입니다.
어떻게하면됩니까?
customersince = customersince가 null 인 최소 (order_date)로 설정하여 고객 테이블을 업데이트 할 수 있습니까? 그렇게하면 쿼리를 단순화 (그리고 속도를 크게 향상) 할 수 있으며 데이터베이스가 커지기 시작하면 더 빠를 것입니다. – Matt
@Matt 내가 할 수있는 권한이 .. .. ( – rgksugan
의도적으로'GROUP BY company_name'입니까? 같은 이름 (다른'companyId')을 가진 두 개의 다른 회사가있는 경우 주문을 합산해야합니다 ? – Quassnoi