です。私はかなりSQLに慣れていませんし、何かばかげたやり方をしようとしています。いくつかの状況を説明するために、キャリアブランチ内の車両の計画と実現された使用を比較し、両方の発生を数える必要があります。私は、次のsqlの参加数は
PLANNED | REALIZED
---------+----------
TRUCK | BI-TREM
TRUCK | TRUCK
TRUCK | TRUCK
TRUCK | TRUCK
TRUCK | TRUCK
CARRETA | CARRETA
CARRETA | CARRETA
TRUCK | KOMBI
TRUCK | BI-TREM
CARRETA | KOMBI
CARRETA | KOMBI
TRUCK | TRUCK
CARRETA | CARRETA
CARRETA | BI-TREM
CARRETA | CARRETA
CARRETA | CARRETA
TRUCK | BI-TREM
のようなものを返し、私は
を返し、次のselect PLANNED,
count(*) as TOTAL_PLANNED
null as REALIZED,
0 as TOTAL_REALIZED
from subquery
group by PLANNED
union all
select null as PLANNED,
0 as TOTAL_PLANNED,
REALIZED,
count(*) as TOTAL_REALIZED
from subquery
group by REALIZED
を試してみた次
VEHICLE | TOTAL_PLANNED | TOTAL_REALIZED
--------+---------------+---------------
CARRETA | 8 | 5
TRUCK | 9 | 5
BI-TREM | 0 | 4
KOMBI | 0 | 3
のようなものを返したいwith subquery as
を持っています
CARRETA 8 NULL 0
TRUCK 9 NULL 0
NULL 0 BI-TREM 4
NULL 0 CARRETA 5
NULL 0 TRUCK 5
NULL 0 KOMBI 3
サブクエリを使用して使用可能なすべての結合を試しましたが、成功しませんでした。実際には、RIGHT JOIN
が機能しますが、すべての計画された車両も実現側にあるためです。一部の車がない場合は、VEHICLE
列にNULLがあります。
SQLコマンドへのポインタであっても、助けてくれてありがとう。
PS:このクエリはSQL ServerとOracleの両方で動作する必要があるため、純粋なSQLを目指しています。
作品!ちょっと複雑なようですが、もっと多くの人がそれを好きになったからといって答えとして選んだのです。両方の答えを理解するには時間がかかるでしょう... –
Simonのソリューションに必要な2 x(n + 1)の読み込みとは対照的に、*見た目は*より複雑です。 –