SQL Server 2008の特定の顧客からの最新の注文

SELECT OrdreID, KundeID, OrdreDato, Navn, Farve
FROM   Ordreliste
WHERE  Newest Order date By ????

特定の顧客によって最新の注文日を取得する必要がありますが、私は完全に空白です!

1

3 答え

別の可能性を示唆するために:

SELECT TOP 1 OrdreID, KundeID, OrdreDato, Navn, Farve
FROM   Ordreliste
WHERE  KundeID = (your customer)
ORDER BY OrdreDato DESC

顧客が同じ日付に2つの注文を受けている場合は、1つしか取得できませんが、最新のものではない可能性があります。注文を順次入力する場合は、 OrdreID DESC で注文する代わりに、常に一意にする必要があります。

3
追加された
@ErikLindbøg-Løfgreen場合によっては、INNER JOINを使用する方がよいでしょう。別の場合は、2つの別々のSELECT文(同じバッチで実行できます)を使用する方がよい場合もあります。この場合、いずれも同じように機能しますので、どちらがもっとも簡単なものを使用してください。
追加された 著者 hvd,
@ErikLindbøg-Løfgreen - はい
追加された 著者 Lieven Keersmaekers,
私は顧客の名前を取得したい場合は、次に私の顧客テーブルを知っていますか?
追加された 著者 Erik Lindbøg-Løfgreen,

特定の顧客の最新の日付を取得するには、 MAX 集計関数

SELECT MAX(OrdreDato)
FROM   Ordreliste
WHERE  Customer = 'YourCustomer'

MAX
  式の最大値を返します。

1
追加された
@エリック - あなたは大歓迎です。これがあなたの質問に答えるなら、それを受け入れられたものとしてマークすることができます。 SOの仕組みの詳細については、こちらをご覧ください。
追加された 著者 Lieven Keersmaekers,
私の友人を尊重してください。 Uは速いです..助けのためのThx
追加された 著者 Erik Lindbøg-Løfgreen,

2つ以上の顧客の最後の注文のリストを表示したい場合(例:特定の国の全員の最終注文日を表示)、ランキング機能を持つ共通テーブル式を使用できます。

; WITH CTE_Last_Orders AS ( LastOrder、OrdreID、KundeID、OrdreDato、Navn、Farveのように、SELECT ROW_NUMBER()OVER(KundeIDによるパーティション、KundeID DESCによるORDER BY) オーデリリストから WHERE KundeID IN() ) LastOrder = 1の場合は、CTE_Last_Ordersから順番に、OrdreDatoを選択します。

0
追加された