2

以下のクエリを実行する方法を理解するのに少し苦労しています。日付が null の場合でもテーブル 1 の一意の ID ごとに行を返したいのですが、同じ ID の行が複数ある場合は、最新の日付の ID のみを返したいと考えています。どんな助けでもいただければ幸いです

Select  a.ID, a.[zip code], b.date
            from table1 a   

            left join table 2 b on a.ID = b.ID  
            Where a.[Zip Code] = '78701' 
Group by a.ID, a.[zip code], b.date
            Order by a.[zip code] asc
4

2 に答える 2

3

サブクエリを使用してtable2、各 IDの最大日付のみを選択できます。

SELECT a.ID, a.[zip code], b.date
FROM table1 a   
LEFT JOIN (SELECT ID, MAX(date) AS date
           FROM table2
           GROUP BY ID) b ON a.ID = b.ID  
WHERE a.[Zip Code] = '78701' 
ORDER BY a.[zip code] ASC
于 2013-04-30T20:24:49.023 に答える
2

クエリを変更しても同じ結果が得られる可能性があります。

SELECT    a.ID, a.[zip code], MAX(b.date) AS [date]
FROM      table1 AS a    
              LEFT JOIN table2 AS b 
                  ON a.ID = b.ID  
WHERE     a.[Zip Code] = '78701' 
GROUP BY  a.ID, a.[zip code]
ORDER BY  a.[zip code] ASC ;
于 2013-04-30T20:41:53.420 に答える