2016-05-24 24 views
-1

OrdersとOrdersInfoというテーブルがあります。SQL個別データの選択

OrderID 
1 
2 
3 

そしてOrdersInfo

OrderID ProductID Amount 
1  1   2 
1  2   1 
2  3   4 

私は、最新の受注コードですべての情報を取得したい:Ordersテーブルは次のようになります。 この場合、回答は空になるOrderID 3の情報でなければなりません。私の問題は、私はそれをグループ化しなければならないと私の情報が正しく表示されません。

SELECT OI.OrderID, OI.ProductID, OI.Amount 
FROM OrdersInfo OI 
JOIN Orders O 
ON OI.OrderID = O.OrderID 
GROUP BY OI.OrderID, OI.ProductID, OI.Amount 
HAVING OI.OrderID = MAX(O.OrderID) 
+0

@RyanVincentを試すことができます:自動インクリメントあればIDは十分です。 –

+0

私はIDをインクリメントする手続きを持っています。私はテーブルを空にしたい。 (一時テーブルを作成せずにこの方法を試したがっています) – TesteroniPeperoni

+0

あなたの欲望の出力は何ですか? [** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t [** START **](http ://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)質問品質を向上させ、より良い回答を得る方法を学ぼう。 –

答えて

0

のためにあなたはthis-

SELECT 
O.OrderID 
,OI.ProductID 
,OI.Amount 

FROM 
(
SELECT 
    MAX(OrderID) AS OrderID 
FROM Orders 
) AS O 
LEFT JOIN OrdersInfo AS OI 
OI.OrderID=O.OrderID 
+0

ニース!ありがとうございました – TesteroniPeperoni

-1

使用LEFT JOINを、あなたはMSQL Server用OrderID = 3

SELECT TOP 1 O.OrderID, OI.ProductID, OI.Amount 
FROM Orders O 
LEFT JOIN OrdersInfo OI 
     ON OI.OrderID = O.OrderID 
ORDER BY O.OrderId DESC 

使用TOP 1ためにNULLを取得します: 私はこのような何かを試してみました。 LIMIT 1は、PostgreSQL

+1

これは悪いコードです。あなたが選択したものをグループ化する必要があります。そして、このコードは動作しません – TesteroniPeperoni

+0

これは悪いコードであっても、あなたが無償であなたを助けようとしている人にそのように言うのは無礼です。また、私はそれを修正しようとすることができますエラーメッセージを含めることができます。 –

+0

コメントには柔らかすぎるよりも厳しい方が良いです。その後、人々はそれをさらに考慮し、次回はもっとうまくやろうとします。 – TesteroniPeperoni

関連する問題