这是我想要开始工作的SQL查询...
SELECT distinct
r.Heat
,c.ctemp
,s.ShiftIdent
,r.ChargeSeq
,s.rollLocSeq
FROM (NYS1ShiftCut s inner join NYS1CharpyOrders c on c.CharpyOrderID = s.CharpyID)
join NYS1Reheat r on r.LocSeq = s.RollLocSeq
where c.CTemp < +40
order by s.rollLocSeq desc
我只需要将“r.heat”作为不同的返回,其余列填充其中包含的任何内容。 c.ctemp和s.shiftident可以很容易地包含重复信息,r.chargeseq和s.rollLocseq将是唯一的返回。
我尝试了几个子查询无济于事。任何帮助将不胜感激。 以下是重新调整的栏目......
439799 -04 05/22/15154D 126 542949330
439799 -04 05/22/15154D 124 542949310
439799 -04 05/22/15154D 123 542949300
439799 -04 05/22/15154D 122 542949290
439799 -04 05/22/15154D 121 542949280
439797 -04 05/22/15154D 117 542949240
439797 -04 05/22/15154D 116 542949230
答案 0 :(得分:1)
SQL Server中没有构造为您提供非分组列的任意值。您需要按这些列进行分组或使用一些聚合函数的痛处。
如果您在评论中指出其他列的值“无关紧要”,那么您可以使用MIN
为每列选择一个值:
SELECT distinct
r.Heat
,MIN(c.ctemp)
,MIN(s.ShiftIdent)
,MIN(r.ChargeSeq)
,MIN(s.rollLocSeq)
FROM (NYS1ShiftCut s inner join NYS1CharpyOrders c on c.CharpyOrderID = s.CharpyID)
join NYS1Reheat r on r.LocSeq = s.RollLocSeq
where c.CTemp < +40
GROUP BY r.Heat
order by s.rollLocSeq desc
MIN
的选择是任意的,也可以是MAX
或AVG
(警告AVG
可能会为您提供不在源中的值数据如果不完全相等。
答案 1 :(得分:0)
@cpe_event