저는 인도네시아에서 Fajar입니다. SQL Server에서 보고서를 작성하는 데 문제가 있습니다. 나는 다음과 같이 트랜잭션 테이블이 ,sql이 날의 이름을 가져 와서 계산합니다.
Date | Trx_ID| Member_id| Invt_id |Branch_id 01-01-2013 | tr001 | 0002 | invt002 |br001 01-01-2013 | tr001 | 0002 | invt003 |br001 01-01-2013 | tr001 | 0002 | invt004 |br001 01-03-2013 | tr002 | 0001 | invt001 |br001 01-03-2013 | tr002 | 0001 | invt003 |br001 01-04-2013 | tr003 | 0003 | invt002 |br001 01-04-2013 | tr003 | 0003 | invt004 |br001 01-05-2013 | tr004 | 0002 | invt005 |br001 01-05-2013 | tr004 | 0002 | invt006 |br001 01-05-2013 | tr005 | 0005 | invt004 |br001 01-05-2013 | tr005 | 0005 | invt005 |br001 01-05-2013 | tr005 | 0005 | invt006 |br001 01-06-2013 | tr006 | 0001 | invt001 |br001 01-06-2013 | tr006 | 0001 | invt002 |br001
이와 나는 MEMBER_ID하여이
Branch_id| weekdays | weekend|weekdays_Weekend br001 | 2 | 1 | 2
의 평균 그룹과 같은 보고서를 만들려고합니다. 주말 거래를하는 회원이 평일에 계산하면 평일 거래를하는 회원도 주말에 계산하지만, 평일과 주말 거래를하는 회원은 평일 주간에 계산합니다. 주말은 토요일과 일요일 평일은 다음과 같습니다 : 월요일, 화요일, 수요일, 목요일, 금요일 내가
을하려고 할 때 회원이 1보다 더 많은 거래를하고 주말과 평일 일 경우 weekdays_weekend가이 잘못된 쿼리입니다
select max(branch_id) , count(DISTINCT trx_id) , sum(case when datename(dw,date) in ('Monday','Tuesday','Wednesday','Thursday','Friday') then f.trx_id else null end) AS 'WeekDays' , sum(case when datename(dw,date) in ('Saturday', 'Sunday') then 1 else 0 end) as 'Weekend' , sum(case when datename(dw,date) in ('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday', 'Sunday') then 1 else 0 end) as 'Weekdays_weekend' from Transaction where branch_id = '14067' and convert (char(6), date, 112) = '201301' group by branch_id
결과하지 trx_id와 그룹 내 영어 나쁜 경우 나에게 t을 도와주세요
Branch_id|weekdays|weekend|weekdays_weekend br001 | 7 | 7 | 0
내가 미안 해요 MEMBER_ID 오 보고서를 작성
어떤 문제가 발생했는지 자세히 설명해 줄 수 있습니까? 이미 가지고있는 SQL을 표시 할 수 있습니까? –
SQL 서버가 oracle이 아닙니다. 오라클은 SQL 서버 – podiluska
수정을위한 thaks podiluska – user3581398