データを抽出する読み取り専用Firebirdデータベースがあります。 MS-Accessでは、3つの簡単なクエリを使用して、それぞれのクエリの出力が次のクエリへの入力となるデータを取得するのは非常に簡単です。今私はこれをPHPでプログラムし、それを1行にまとめたいので、これらの3つのクエリを1つにまとめたいのですが、わかりません。1つのクエリでMIN関数を使用する場合のsqlクエリの結合方法
最初のクエリは、私の会社計画(最大1000行)にある今日のすべての日付を私に与えます。より多くの日にいくつかの仕事が計画されているので、今日からの最初の日だけが必要です。クエリ2でMIN関数を使用してこれを取得します。最後のクエリでは、左の結合を使用して、すべての保留中のジョブを生成された最初の日付と結合します。
これはどのようにして1つのクエリで実行できますか?私は読書権しか持っていないので、私は一時的なテーブルを扱うことができません。
誰かから指示をお願いできますか?
**First step**
SELECT
salesorderplan.plandate,
salesorderplan.salesorder
FROM
salesorderplan
WHERE
salesorderplan.plandate >= Date();
**second step**
SELECT
Min([1estap].plandate) AS firstplandate, [1estap].salesorder
FROM
[1estap]
GROUP BY
[1estap].salesorder;
**third step**
SELECT
salesorder.orderno,
[2estap].firstplandate,
salesorder.description,
salesorder.deliverylocname,
salesorder.deliveryaddress,
salesorder.deliverycity
FROM
((salesorder)
left join 2estap on (salesorder.objectid = [2estap].salesorder))
WHERE
salesorder.salesstatus=1
ORDER BY
salesorder.orderno;
私は2つのテーブルを持っています。最初は、すべての私の仕事を含むsalesorderです。 2番目はsalesorderplanと呼ばれ、ジョブナンバーの計画ですべての日付が含まれています。
SALESORDER
objectid description etc
342567 blah blah
356782 jwz
384512 not in planning yet
SALESORDERPLAN
objectid salesorder plandate
23451 342567 12-03-2017
23489 342567 14-04-2017
23490 356782 13-03-2017
23496 356782 18-06-2017
23499 342567 21-08-2017
23499 342567 28-08-2017
23512 356782 30-08-2017
23524 356782 2-09-2017
私のすべての注文のリストが必要です。私の計画の日付があれば、私は今日の後の最初の日付をしたい(私はMINののFucTを使用場所な) だから、結果は私が私が持っていないと言って、これを前置きする必要があり
Result
objectid description plandate
342567 blah blah 21-08-2017
356782 jwz 30-08-2017
384512 not in planning yet no date
クエリが作成されるように、テーブルの相互関係を表示する必要があります。可能であれば、テーブルの構造を表示し、可能であれば、テーブルのサンプルデータとそのサンプルから目的の結果を表示します。 –
実際に何をしようとしたのか、間違ったのか、どのFirebirdのバージョンを使用していますか(あなたの質問には、1.xのような古代のバージョンが使われているようです)。 –