0

私はこれを機能させるように努めてきましたが、どこにも到達していません。私が必要としているのは次のとおりです。

特定のテーブルのMAXレコード以外のすべてを選択できる必要があります。(TOPまたはMAXを使用して)Maxレコードを選択する方法を知っていますが、それ以外のすべてを表示したいと思います。これを行う方法はありますか?以下のコードを試しましたが、代わりにMAXレコードを取得し続けています。

    SELECT 
    rtrim(ltrim(pn.sFirstName + ' ' + pn.uLastName)) as newroom
    FROM tenant t (nolock)
    INNER JOIN room rm (NOLOCK) on t.hmyperson = rm.hmytenant
             and isnull(rm.boccupant,0)=0
             and rm.dtmoveout is null
    INNER JOIN person pn (nolock) on pn.hmy = rm.hmyperson
    WHERE pn.hmy <> 
   (SELECT TOP 1 pn.hmy 
    FROM tenant t (nolock)
    INNER JOIN property p (nolock) on p.hMy = t.hProperty
    INNER JOIN unit u (nolock) on (t.hUnit = u.hMy
    INNER JOIN addr ua (nolock) on u.hmy = ua.hPointer
    INNER JOIN room rm (NOLOCK) on t.hmyperson = rm.hmytenant
             and isnull(rm.boccupant,0)=0
        and rm.dtmoveout is null
        and isnull(rm.dtMoveIn,getdate()) >= getdate()
    INNER JOIN person pn (nolock) on pn.hmy = rm.hmyperson
    WHERE t.code = '011212'
    ORDER BY pn.hmy)
    and t.code = '011212'

レコードをプルした後、MAXレコードを別の行に組み込みたいと思います。

助けてくれてありがとう。

4

4 に答える 4

1

クエリの場合:9行目-次のように変更します。

SELECT MAX(pn.hmy)

20行目を削除します。必要ありません。

于 2013-03-06T17:21:08.050 に答える
0

入力ありがとうございます。

私はずっと近くにいます。私の次のハードルは、残りのレコードを分離しようとすることです。たとえば、レコードにリンクされている複数の名前があります。

私はそれをしたい:

NewRoom、NewRoom2

ボブ・スミス、ジョージ・ウィルソン

私は得る:

NewRoom、NewRoom2

BobSmith

ジョージウィルソン

以下の私のコード:

   SELECT 
rtrim(ltrim(pn.sFirstName + ' ' + pn.uLastName)) as newroom,
rtrim(ltrim(pn1.sFirstName + ' ' + pn1.uLastName))as newroom2
FROM tenant t (nolock)
INNER JOIN room rm (NOLOCK) on t.hmyperson = rm.hmytenant
         and isnull(rm.boccupant,0)=0
         and rm.dtmoveout is null
INNER JOIN person pn (nolock) on pn.hmy = rm.hmyperson
LEFT OUTER JOIN room rm1 (NOLOCK) on t.hmyperson = rm1.hmytenant
         and isnull(rm1.boccupant,0)=0
         and rm1.dtmoveout is null
LEFT OUTER JOIN person pn1 (nolock) on pn1.hmy = rm1.hmyperson
WHERE (pn.hmy or pn1.hmy) <> 
   (SELECT Max(pn.hmy) 
FROM tenant t (nolock)
INNER JOIN property p (nolock) on p.hMy = t.hProperty
INNER JOIN unit u (nolock) on (t.hUnit = u.hMy
                   and u.sCode not in ('WAIT' ,'COMAREA')
                   and u.scode not like 'NONRES%'
                   and u.exclude = '0' )
INNER JOIN addr ua (nolock) on u.hmy = ua.hPointer
INNER JOIN room rm (NOLOCK) on t.hmyperson = rm.hmytenant
         and isnull(rm.boccupant,0)=0
    and rm.dtmoveout is null
INNER JOIN person pn (nolock) on pn.hmy = rm.hmyperson
WHERE t.scode = 't0029839'

)およびt.scode ='t0029839'

言うまでもなく、同じ行にMAXレコードも必要です。

MAX_Room、NewRoom、NewRoom2

みんな、ありがとう

于 2013-03-07T19:33:53.560 に答える
0

基本的に、これが必要です。

SELECT * FROM tableA WHERE tableA.ID < (SELECT MAX(ID) FROM tableA)

于 2013-03-06T17:10:39.857 に答える
0
select
    MaxValue = Max(/* whatever*/),
   -- other required columns
from 
:
:
group by -- as needed
having value <> MaxValue
于 2013-03-06T17:10:42.043 に答える