我有一个拥有RMA返回数据的数据库。我想编写一个查询来返回一个单元被返回的总次数(每个返回都有一个唯一的RMA编号)。我还需要返回一个单元多次返回的次数,以及它返回相同症状的次数。每次设备进入工作站时都会创建一条记录(为每个工作站记录传播RMA,症状和返回的日期)。
数据如下所示:
Total_Returns Repeat_Return Same_Symptom_Return
6 2 1
我的输出需要如下所示:
Select count(*) as totalcount
From
(
SELECT
[SN]
,[RMA]
FROM [dbo].[test]
Group by [SN],[RMA]
)as a
A001(RMA 84704)是单次退货。
A002是多次返回 - (RMA 83494)是第一次返回(修复后,该单位被运出)在一段时间后在现场,该单位再次返回A002(RMA 84283)....返回单位,它通过3个站(我们为每个站创建一个记录(传播每个站记录返回的RMA,症状和日期)。
我可以使用代码获得Total_Returns:
<body>
<header>
<a href="index.html" id="logo"> <h1>
<div id="header_title">
Title
</div></h1> </a>
<div id="header_border"></div>
<nav id="nav">
<ul>
<li>
<a href="index.html" class="selected" >About</a>
</li>
<li>
<a href="resume.html">Resume</a>
</li>
<li class="subNav">
<a>Portfolio</a>
<ul>
<li>
<a href="writing_samples.html">Writing Samples</a>
</li>
<li>
<a href="photoshop.html">Photoshop</a>
</li>
</ul>
</li>
<li>
<a href="contact.html">Contact</a>
</li>
</ul>
</nav>
</header>
<object id="resume" data="img/Resume.pdf" type="application/pdf" style="float: left" width="100%" height="100%">
<p>
It appears you don't have a PDF plugin for this browser.
No biggie... you can <a href="myfile.pdf">click here to
download the PDF file.</a>
</p>
</object>
</body>
答案 0 :(得分:0)
达到计数需要3种完全不同的方法,所以我使用了3个独立的子查询。在这里看到这个工作在sqlfiddle(但不是在MS SQL Server上):http://sqlfiddle.com/#!5/9df16/1
结果:
| Total_Count | Repeat_Return | Same_Symptom_Return |
|-------------|---------------|---------------------|
| 6 | 2 | 1 |
查询:
select
(select count(distinct SN + RMA + SYMPTOM) from table1) as Total_Count
, (select count(*) from(
SELECT SN
FROM table1
Group by SN
having count(distinct Date_Returned) > 1)
) as Repeat_Return
, (select count(*) from(
SELECT SYMPTOM
FROM table1
Group by SYMPTOM
having count(*)/3 > 1)
) as Same_Symptom_Return
注意:你应该包含&#34; sql server&#34;作为你问题的标签(我认为这是因为 [dbo]。[测试]
答案 1 :(得分:0)
我让它发挥作用......我确信有一种更简洁的方式来编写它......
|Total_Returned | Repeat_Return | Same_Symptom_Return |
|---------------|---------------|---------------------|
| 6 | 2 | 1 |
结果:
VALUE