我目前有一份报告,其中包含将在下周进行的工作的客户列表。
目前,当报表运行时,我们会生成一个客户列表,要执行的工作日期,工作类型及其电子邮件地址。
许多这些客户在整个星期都会执行多项服务,因此会在报告中多次出现。
我想将列表中多次出现的客户端组合起来,如下所示:
我们目前的情况:
public class TrophyActivity extends AppCompatActivity {
public static final String PREFS = "examplePrefs";
Button btn_back, btn_exit;
TextView tv_congrats, tv_received, tv_trophyName, tv_trophy;
ImageView iV_trophy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trophy);
btn_back = (Button) findViewById(R.id.btn_back);
btn_exit = (Button) findViewById(R.id.btn_exit);
tv_congrats = (TextView) findViewById(R.id.tv_congratulations);
tv_received = (TextView) findViewById(R.id.tv_received);
tv_trophyName = (TextView) findViewById(R.id.tv_trophy_name);
tv_trophy = (TextView) findViewById(R.id.tv_trophy);
iV_trophy = (ImageView) findViewById(R.id.iV_trophy);
SharedPreferences example = getSharedPreferences(PREFS, MODE_PRIVATE);
int valueString = example.getInt("userValue", 0);
if (valueString<=25){
tv_trophyName.setText("Beginner");
iV_trophy.setImageResource(R.drawable.ic_beginner);
}else if (valueString<=50){
tv_trophyName.setText("Intermediate");
iV_trophy.setImageResource(R.drawable.ic_ntermediate);
}else if (valueString<=75){
tv_trophyName.setText("Semi Jumbo");
iV_trophy.setImageResource(R.drawable.ic_semi_jumbo);
}else if (valueString<=100){
tv_trophyName.setText("Jumbo");
iV_trophy.setImageResource(R.drawable.ic_jumbo);
}
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TrophyActivity.super.onBackPressed();
}
});
btn_exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
moveTaskToBack(true);
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
});
}
}
我们想要什么:
Cust ID FName LName Date Description
1 Jon Smith 01/01/17 Spring Cleanup
1 Jon Smith 01/03/17 Lawn Maintenance
1 Jon Smith 01/05/17 Irrigation
2 Jane Roberts 01/02/17 Spring Cleanup
2 Jane Roberts 01/03/17 Lawn Maintenance
3 Jim Whoever 01/04/17 Turf
到目前为止,这是我们的代码:
Cust ID FName Lname Date Description
1 Jon Smith 01/01/17 Spring Cleanup, Lawn Maintenance, Irrigation
2 Jane Roberts 01/02/17 Spring Cleanup, Lawn Maintenance
3 Jim Whoever 01/04/17 Turf
感谢您提前获得任何帮助,因为我对SQL非常陌生并感谢您的帮助。
答案 0 :(得分:1)
这是模拟GROUP CONCAT。
Select
cust.CustID,
cust.CustName,
cust.FirstName,
cust.LastName,
cust.Email,
wo.ShortDesc,
Min(wos.StartTime) as StartTime,
--br.Description Branch
Branch = STUFF((
SELECT ',' + md.Description
FROM dbo.Branches md
WHERE br.LocationID = md.LocationID
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
From
WorkOrderSchedules wos Join
WorkOrders wo On wo.SvcOrderID = wos.SvcOrderID Join
Customers cust On cust.CustID = wo.CustID Join
Branches br On br.LocationID = wo.LocationID
Where
wos.StartTime Between DateAdd(wk, 2, DateAdd(wk, DateDiff(wk, 7,
GetDate()), -1)) And DateAdd(wk, 2, DateAdd(wk, DateDiff(wk, 7, GetDate()),
5)) And cust.CustName Not Like 'Three C%' And wo.ShortDesc Not Like
'sales lead' And wo.ShortDesc Not Like '%lawn main%' And
cust.CustName Not Like 'Port' And cust.CustName Not Like '31 Mile%' And
cust.CustName Not Like '32 Mile' And cust.CustName Not Like 'Quail Ridge' And
cust.CustName Not Like 'Hayes' And cust.CustName Not Like 'Inla' And
cust.CustName Not Like 'Eaton' And cust.CustName Not Like 'Fisher' And
cust.CustName Not Like 'Pasadena' And cust.CustName Not Like 'Mallard'
group by
cust.CustID,
cust.CustName,
cust.FirstName,
cust.LastName,
cust.Email,
wo.ShortDesc,