我沒有使用搜索,但爲數不多的結果似乎並沒有回答我的具體問題(或我的SQL技能是不夠好,適用的答案,我的方案)SQL多對多分組到一排
我有我需要加入的桌子。背景是交付業務。一個表格包含交付回合計劃。我從這張表中所需要的是客戶註冊每週交貨的日期。這是加入了帳號。
其他表中包含的賬號,交貨日期等情況
我所希望做的是提取交付給每一個帳戶的平均數量在過去的6周。但僅適用於開始日期介於6至10周之前的帳戶。
我正在使用的代碼似乎帶回了正確的日期範圍,但是,我需要爲每個帳戶編號一行,並且爲期六週的期限內的平均交付次數。我正在使用的代碼不能正確執行此操作。
任何幫助,非常感謝。
THANKYOU
select mov.AccountNumber,
sch.contractStart,
mov.TypeOfMovement,
mov.Outlet,
mov.RoundName,
mov.VehicleType,
avg(mov.NumberofItems)
FROM [round_movements]mov
left outer join [schedule]sch on sch.AccountNumber=
mov.AccountNumber
where mov.outlet='County'
and DATEDIFF(week, sch.ContractStart,GETDATE()) in(10,9,8,7,6)
and DATEDIFF(week, mov.RoundDate,GETDATE()) in (6,5,4,3,2,1,0)
group by
mov.AccountNumber,
mov.RoundName,
sch.contractStart,
mov.TypeOfMovement,
mov.Outlet,
mov.VehicleType,
mov.NumberofItems
order by mov.AccountNumber
與上述代碼結果:
════════════════════════════════════════════════════════════════════════════════════════╗
║ AccountNumber contractStart Outlet RoundName VehicleType Avg No of Items ║
╠════════════════════════════════════════════════════════════════════════════════════════╣
║ 4000461 27/11/2013 town1 E4 (Wednesday) sprinter 1 ║
║
║ 6382401 29/10/2013 town2 E1 (Thursday) sprinter 2 ║
║ 6382401 29/10/2013 town2 E1 (Thursday) sprinter 2 ║
╚════════════════════════════════════════════════════════════════════════════════════════╝
預期結果:
╔═════════════════════════════════════════════════════════════════════════════════════╗
║ AccountNumber contractStart Outlet RoundName VehicleType Avg No Items ║
╠═════════════════════════════════════════════════════════════════════════════════════╣
║ 4000461 27/11/2013 town 1 E4 (Wednesday) sprinter 1 ║
║ 6382401 29/10/2013 town2 E1 (Thursday) sprinter 2 ║
║ ║
╚═════════════════════════════════════════════════════════════════════════════════════╝
找零sugges後結果下面泰德盧比:
╔═════════════════════════════════════════════════════════════════════════════════════╗
║ AccountNumber contractStart Outlet RoundName VehicleType Avg No Items ║
╠═════════════════════════════════════════════════════════════════════════════════════╣
║
4000461 27/11/2013 Bristol E4 (Wednesday) RCV 1
6382401 29/10/2013 Bristol E1 (Thursday) RCV 2
6382401 29/10/2013 Bristol E1 (Thursday) RCV 2
║
╚═════════════════════════════════════════════════════════════════════════════════════╝
按帳戶分組十月,contractStart,outlet,roundname – user1336827
我添加了sql-server標記,因爲查詢語法強烈建議SQL Server。 –
對不起。我正在使用SQL Server 2008 R2。謝謝。 – user3103335