0
SELECT DISTINCT HouseHoldMembers.FamilyID,
Year(GetDate())-Year(DOB) as Age,
FirstName+' '+LastName 'HeadOfHousehold',
FamilyFolder.HouseNo
from HouseHoldMembers 
left outer join FamilyFolder on FamilyFolder.FamilyID=HouseHoldMembers.FamilyID
WHERE HouseHoldMembers.FamilyID 
    in (select familyid from HouseHoldMembers where FirstName like 'laxmi')
and HouseHoldMembers.FamilyID like  'alv'+'%'

このために私はgettngです-出力は次のとおりです。

FamilyID         age          HeadOfHousehold              HouseNo  
ALV01L11034A      25             ashoka                        34
ALV01L11034A      74             arpana                        34
ALV01L11034A      62             laxmi                         34
ALV01L11059A      34             shama                         63
ALV01L11059A      62             baby                          63
ALV01L11059A      35             laxmi                         63

しかし、各家族IDの最大年齢のクエリ検索のように表示したい(その特定の家族の最大年齢に応じて家族IDを選択し、次のように表示したい出力を以下に説明します)解決策を教えてください。

FamilyID          age          HeadOfHousehold              HouseNo  
ALV01L11034A       74                 arpana                   34
ALV01L11059A        62                baby                      63

テーブル構造は次のとおりです:世帯員用テーブル->

memberid varchar(50) as primarykey,firstname varchar(50) as null,lastname varchar(50) as null, relationwithhead varchar(50) as null,familyid varchar(50) as null,dob datetime as null

familyfolder テーブルの場合 ->

familyid varchar(50) as primarykey, houseno varchar(50) as null

前もって感謝します

4

3 に答える 3

0

これを使用できる ms sql かどうかを照会します。

  SELECT a.FamilyID,
         a.Age,
         a.HeadOfHousehold
         a.HouseNo
  FROM(
  SELECT        hm.FamilyID,
                Year(GetDate())-Year(DOB) AS Age,
                FirstName+' '+LastName AS 'HeadOfHousehold',
                ff.HouseNo,
                ,ROW_NUMBER() OVER(PARTITION BY hm.FamilyId ORDER BY YEAR(GetDate()) - YEAR(DOB) DESC) as rnk
FROM HouseHoldMembers hm
LEFT OUTER JOIN FamilyFolder ff ON ff.FamilyID=hm.FamilyID
WHERE hm.FirstName = 'laxmi'
  AND hm.FamilyID LIKE 'alv'+'%')a
  WHERE a.rnk = 1
于 2013-09-16T10:26:05.547 に答える