2014-02-24 73 views
1
Table1 
id  REQNo Qty 
D10 RD780 10 
D1A RD786 20 
D20 RD34 30 
D2A RD34 40 

有(1,2)(即,)D1和D2
如何找到2個字段是否相等在同一列

對於D1,如果RD780不等於RD786然後數量的兩個相等的子串將相同

對於D2,因爲具有相同RD34然後總和(數量)爲70

需要的輸出

id ReqNo Qty 
D10 RD780 10 
D1A RD786 20 
D20 RD34 70 

回答

0

這似乎工作:

declare @t table (id char(3),REQNo varchar(5),Qty int) 
insert into @t(id,REQNo,Qty) values 
('D10','RD780',10), 
('D1A','RD786',20), 
('D20','RD34', 30), 
('D2A','RD34', 40) 

select MIN(id) as id,REQNo,SUM(Qty) as Qty 
from @t 
group by SUBSTRING(REQNo,1,2),REQNo 

其中由事實MIN(id)將是相同的id對於最終只包含一個行組的工作。

id REQNo Qty 
---- ----- ----------- 
D20 RD34 70 
D10 RD780 10 
D1A RD786 20 
+0

什麼原因...'GROUP BY子串()'爲什麼不強制'...通過regno'組? –

+1

@VijaykumarHadalgi - 因爲OP似乎在討論基於D1和D2的匹配行,這兩個字符是該列的前兩個字符。 –

0
SELECT COUNT (*) , First_name, Last_Name, Mobile, Mobile1, Company, Job_title, Tel, Fax, Email, Email1, Country 
from dbo.Visitors 
where (your where statement) GROUP BY First_name, Last_Name, Mobile, Mobile1, Company, Job_title, Website, Tel, Fax, Email, Email1, Country 
HAVING COUNT (*)>1 
1
create table #t(id varchar(10),reg varchar(10),qty int) 
insert into #t values('D10','RD780',10), 
('D1A','RD786',20), 
('D20','RD34',30), 
('D2A','RD34',40) 

select min(id),reg,sum(qty) from #t group by reg 

See Demo

相關問題