質問する
197 次
1 に答える
1
次のクエリは、必要なものを取得する必要があります。少し長いですが、トリックを行います:
`select LIST.Civil_Parish, SD.Site_name, LIST.MSite_Date
from
(
select Civil_Parish, min(Site_date) as MSite_date
from SiteDetail
where Boolean = 1
group by Civil_Parish
union
select Civil_parish, min(Site_date) as MSite_date
from SiteDetail
where Civil_parish not in
(select Civil_parish
from SiteDetail
where Boolean = 1)
group by Civil_Parish) as LIST
left join sitedetail SD on LIST.Civil_Parish = SD.Civil_Parish and LIST.MSite_Date = SD.Site_Date`
次の点に注意してください:
1) PowerUser のブール値の提案を使用しています。ブール列の値が 1 の場合、行は教区教会であり、そうでない場合は 0 です。
2) この例では、テーブル "SiteDates" と "SiteDetails" を 1 対 1 で結合しました。
クエリの核心は、A) 教区内で最も古い教区教会を見つけ、次に B) 教区教会のない教区を見つけることです。
A) のコードは次のとおりです。
'select Civil_Parish, min(Site_date) as MSite_date
from SiteDetail
where Boolean = 1
group by Civil_Parish'
次に、教区教会を持たない教区で最も古い教会とそれを結合します。
'select Civil_parish, min(Site_date) as MSite_date
from SiteDetail
where Civil_parish not in
(select Civil_parish
from SiteDetail
where Boolean = 1)
group by Civil_Parish'
次に、ユニオン クエリ (ここでは "LIST" という名前) を元の "SITEDETAIL" テーブルと Parish と Date に結合して、教会名を取得します。
于 2013-07-10T20:37:38.753 に答える