0

次のクエリがあります

SELECT  McId, MAX(TimeDone) 
FROM    Trace 
WHERE   PcbId = 'C825514362' 
AND  DeviceId <> 0 GROUP BY McId

しかし、次の列から値を取得する必要もありますProgram, DeviceId,OrderNo

それを同じクエリで何らかの方法で組み合わせることができますか?

このクエリは、 mssql 、 mysql 、および oracle で実行する必要があります。

4

5 に答える 5

1
SELECT  
 McId, 
 MAX(TimeDone),
 Program,
 DeviceId,
 OrderNo
FROM  Trace
WHERE   PcbId = 'C825514362' AND  DeviceId <> 0
GROUP BY 
 McId,
 Program,
 DeviceId,
 OrderNo
于 2012-05-23T10:00:33.473 に答える
0

3 つのソリューション。

  1. あなたが欲しいと考えるMAXProgram,DeviceId,OrderNo

    SELECT McId、
           MAX(完了時間),
           MAX(プログラム)、
           MAX(デバイスID),
           MAX(注文番号)
    FROM トレース
    WHERE PcbId = 'C825514362' AND DeviceId 0
    GROUP BY McId;
    
  2. 残りの列をコンマで区切り~、区切り記号として使用することを考慮して

    SELECT McId、
           MAX(完了時間),
           GROUP_CONCAT('~', プログラム, '~', DeviceId, '~', OrderNo)
    FROM トレース
    WHERE PcbId = 'C825514362' AND DeviceId 0
    GROUP BY McID
    
  3. あなたがMcIdと一緒にグループ化されたいと考えています

    SELECT McId、
           MAX(完了時間),
           プログラム、
           デバイスID、
           注文番号
    FROM トレース
    WHERE PcbId = 'C825514362' AND DeviceId 0
    GROUP BY McId、Program、DeviceId、OrderNo;
    
于 2012-05-23T10:12:51.647 に答える