1
興味深いSQL:は、私は私のテーブルにこのデータを持っているクエリ
onum amt odate cnum snum
3001 18,69 1990-03-10 00:00:00.000 2008 1007
3002 1900,10 1990-03-10 00:00:00.000 2007 1004
3003 767,19 1990-03-10 00:00:00.000 2001 1001
3005 5160,45 1990-03-10 00:00:00.000 2003 1002
3006 1098,16 1990-03-10 00:00:00.000 2008 1007
3007 75,75 1990-03-10 00:00:00.000 2004 1002
3008 4723,00 1990-05-10 00:00:00.000 2006 1001
3009 1713,23 1990-04-10 00:00:00.000 2002 1003
3010 1309,95 1990-06-10 00:00:00.000 2004 1002
3011 9891,88 1990-06-10 00:00:00.000 2006 1001
は、私はこの結果を得る必要があります:私は毎日odate
に最大amt
を選択している
amt odate snum
5160,45 1990-03-10 00:00:00.000 1002
4723,00 1990-05-10 00:00:00.000 1001
9891,88 1990-06-10 00:00:00.000 1001
を、しかしで表示します売り手のsnum
もしこれを書いたら
SELECT MAX(amt), odate, snum
FROM [Understanding].[dbo].[Orders]
GROUP BY odate, snum
日と売り手でグループを表示するため、出力が正しくありません。
私は... SQL Serverが文の先頭にセミコロンを必要とするという事実のために使用されることはありません飽きないでしょう。) –
@a_horse_with_no_name - まあ、それは実際には前の文の最後の文字です。 'merge'ステートメントでは、セミコロンで終わる必要があります。 'with'は前のステートメントがセミコロンで終了することを要求します。 SQL Serverでは、すべてのステートメントをセミコロンで終了する必要がある場合は、より一貫性があります。多分それは将来のバージョンで起こります。 –
@a_horse_with_no_name: 'WITH'はSQL Serverのさまざまなコンテキストで使用できます。それがCTE(のリスト)を導入するとき、それはステートメントの始めになければならず、他の場合には、最初ではなく他のどこかにあるはずです。セミコロンは単に「WITH」の意味に関してあいまいさを取り除くだけです。 'WITH'の前に文がないとき(CTE定義の文脈では)、セミコロンを置く必要はありません。 –