首页 > 解决方案 > 如果我想在我的 sql 查询中使用 group by 函数,有什么办法吗

问题描述

我想对我为我的 ts.Id 分配的 REFId 进行分组。我写的SQL查询可以让它更简单或更好。

我已经提供了查询,我尝试使用 Group By 函数按相同的 REF id 分组,但出现错误。

 Select ts.ID, 
    ts.RequestName, 
    ts.OncorStationName,
    ts.Category, 
    ts.ReceptionDate, 
    ts.County, 
    ts.Voltage, 
    ts.TSCAssignment,
    ts.MWCapacity,
    ts.InServiceDateRequested,
    ts.FEASignedDate,
    ts.DSASignedDate,
    ts.TransmissionServicesComments,
 (CASE 
 When (t.id = 1353 OR t.id = 1527 ) then 6
 When (t.id = 1468 OR t.id = 1462) then 7
 When (t.id = 1458 OR t.id = 1592 ) then 13
 When (t.id = 1594 OR t.id = 1622) then 15 
 When (t.id = 1369 OR t.id = 1602 OR  t.id = 1616 OR t.id = 1627) then 39
 When (t.id = 1367 OR t.id = 1419) then 4       
 When (t.id = 1549 Or t.id = 1625 ) then 93
else Null End) As Ref 

from  [rpt].[TransmissionServicesRpt] ts
inner join [dbo].[TransmissionServicePOI] poi on ts.id = 
 poi.TransmissionServiceId
 inner join [rpt].[TransmissionServicesRpt] t on t.id = ts.id
 Where ts.Status = 'active'
 Order by ts.FEASignedDate DESC;

Ts.id 彼此相关,如果它们是相关的,则分配相同的 REF,所以现在我想按 REF id 分组在一起,这样我就可以一起查看相关项目。

 (CASE 
 When (t.id = 1353 OR t.id = 1527 ) then 6
 When (t.id = 1468 OR t.id = 1462) then 7
 When (t.id = 1458 OR t.id = 1592 ) then 13
 When (t.id = 1594 OR t.id = 1622) then 15 
 When (t.id = 1369 OR t.id = 1602 OR  t.id = 1616 OR t.id = 1627) then 39
 When (t.id = 1367 OR t.id = 1419) then 4       
 When (t.id = 1549 Or t.id = 1625 ) then 93
else Null End) As Ref

标签: sql

解决方案


推荐阅读