Sql server 尝试将结果与以前的结果进行比较
我的任务是编写一份报告,根据订单中的行项目来提取订单。一旦得到正确的结果,我将使用SSRS为最终用户创建报告。基本上我需要做的是查询一个包含销售订单号、行项目、日期等的表。每个订单都有多个行项目。他们想知道订单中是否有一个名为ASR、SERVICE的行项目,或者两者都不在其中Sql server 尝试将结果与以前的结果进行比较,sql-server,sql-server-2008,reporting-services,Sql Server,Sql Server 2008,Reporting Services,我的任务是编写一份报告,根据订单中的行项目来提取订单。一旦得到正确的结果,我将使用SSRS为最终用户创建报告。基本上我需要做的是查询一个包含销售订单号、行项目、日期等的表。每个订单都有多个行项目。他们想知道订单中是否有一个名为ASR、SERVICE的行项目,或者两者都不在其中 SELECT DISTINCT arcust.loctid, sodate, somast.custno, somast.sono, somast.route,
SELECT DISTINCT
arcust.loctid,
sodate,
somast.custno,
somast.sono,
somast.route,
item
FROM
somast
INNER JOIN arcust ON somast.custno = arcust.custno
INNER JOIN sotran ON somast.sono = sotran.sono
WHERE
sodate = '06-04-2015' AND
somast.sostat NOT IN('X','V') AND
route IN ('220','221')
这是我正在使用的,但它正在拉所有行项目。如果每个订单都有行项目ASR或服务,或者两者都没有,我怎么能只提取一个行项目
以下是该查询的结果:
loctid sodate custno sono route item
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 10788
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10291
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10445
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10448
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 10751
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 21016
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 21030
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 23002
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 66262
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 ASR
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10329
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10520
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10910
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 11010
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 21772
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 11437
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 SERVICE
OMAHA 2015-06-04 00:00:00.000 8449 4399314 221 30405
我希望看到它是这样的:
loctid sodate custno sono route item
OMAHA 2015-06-04 00:00:00.000 10268 4399062 221 SALESDEL
OMAHA 2015-06-04 00:00:00.000 2298 4399308 221 ASR
OMAHA 2015-06-04 00:00:00.000 2513 4399451 221 10329
OMAHA 2015-06-04 00:00:00.000 514 4399287 221 SERVICE
OMAHA 2015-06-04 00:00:00.000 8449 4399314 221 30405
我相信你使用了错误的连接类型。看看这个图表。我一直在用这个,非常有用
JamesZ-我只是想让它划出一条有ASR或服务的线,或者如果两者都不在订单中,那么我想知道它们都不在订单中。在您想要的结果中,为什么custno 10268有SALESDEL,而2513有“10329”,而SALESDEL是其中一项?在任何情况下,您都应该能够对CASE WHEN EXISTS()语句执行所需的操作。