2017-02-12 8 views
0

誰かこの質問で私を助けてください: 私はordernumber、requireddate、shippeddate列を持つOrdersというテーブルを持っています。私はshippeddateとrequireddateの間の最も多くの日数が何であるかを知る必要があり、注文番号をリストアップする必要があります。テーブルの列からSQLのビューにすべての行を返します

ordernumberとdatediff(requireddate、shippeddate)を含めるビューを作成しました。これは私のコードです

create view Numberdays (ordernumber, number_of_days) 
as select ordernumber, datediff(requireddate, shippeddate) 
from CM_orders 
group by ordernumber 

私の注文は、私が注文テーブルに約300の行を持っていても、テーブルの30行だけを示しています。 誰かが私が間違っていることを説明してください、テーブルからすべての行を表示するビューを行う方法はありますか? ありがとうございます。

+0

を行うことで、あなたの注文番号をご確認くださいはい、注文番号があるOrdersテーブル – Tajinder

+0

にユニークですユニーク。それらは10100から10425まで番号が付けられています –

+0

http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-aを参照してください-very-simple-sql-query – Strawberry

答えて

-1

注文番号でグループ化します。私はあなたが30の注文番号しか持っていないと推測しているので、30行しか返されません。

あなたの質問を分解して再構築することをお勧めします。単純化すれば、より多くの行が返される可能性が高いので、可能性としてリミッタを削除します。その後、パスをたどって、望む結果を得るまで、または制限要因を特定するまで、返されたデータを絞り込むクエリにゆっくりと追加します。

予期しないデータが返され、テストするデータセットがなくても問題を特定するために試行錯誤して問題を診断することはほとんど不可能です。だから私があなたに与えることができる最高のアドバイスは、それを取り戻してシンプルにして、問題を特定するまで複雑さを加えることです。

+0

ありがとう、グレッグ。しかし、私の受注テーブルには約300の注文番号があります。私はこの問題を似たような質問でもう一度聞いた。 –

-2

は、あなたが制限300をチェックし、それをテストすることができ、レコードが表示またはない

+0

ありがとう。私は限界を試しましたが、どちらもうまくいきませんでした。しかし、私は自分の答えに限界のキーワードを使用することは許されていません。あなたは他の選択肢を知っていますか? –

0

私が正しくあなたの問題を理解したいと考えています。

私は同様の状況を作成しようとしました。以下のsqlfiddleリンクを確認してください。 はあなたの

create view Numberdays (ordernumber, number_of_days) 
as select ordernumber, datediff(requireddate, shippeddate) 
from Orders; -- i think no need to group by if there is not any aggregate function 

は完全な順序番号を取得するビューのクエリを作成しますからして、グループを削除しました。

http://sqlfiddle.com/#!9/03d58a/1/0

0

、あなたは何をする必要があるどのような最初の最大requiredateと最小出荷日を検索し、DATEDIFFに

CREATE VIEW Numberdays (ordernumber, number_of_days) 
AS SELECT ordernumber, datediff(rdate,sdate) 
FROM(
    SELECT ordernumber, max(requiredate) AS rdate,min(shippeddate) AS sdate 
    FROM CM_orders 
    GROUP by ordernumber 
) 
関連する問題