私はPostgres 9.5.3のクエリで作業するために横を取得しようとしています。横方向のクエリの構文
select b_ci."IdOwner",
ci."MinimumPlaces",
ci."MaximumPlaces",
(select count(*) from "LNK_Stu_CI" lnk
where lnk."FK_CourseInstanceId" = b_ci."Id") as "EnrolledStudents",
from "Course" c
join "DBObjectBases" b_c on c."Id" = b_c."Id"
join "DBObjectBases" b_ci on b_ci."IdOwner" = b_c."Id"
join "CourseInstance" ci on ci."Id" = b_ci."Id",
lateral (select ci."MaximumPlaces" - "EnrolledStudents") x
私が一番右の欄には「MaximumPlaces」の結果になりたい - その行の「EnrolledStudents」が、それは仕事を得るのに苦労しています。現時点でPGは「登録学生」が存在しないと不満を抱いています - それはちょうど「側方」のポイントですね。私が選択して(上に示す)横句をインライン化しようとした場合
select b_ci."IdOwner",
ci."MinimumPlaces",
ci."MaximumPlaces",
(select count(*) from "LNK_Stu_CI" lnk
where lnk."FK_CourseInstanceId" = b_ci."Id") as "EnrolledStudents",
lateral (select "MaximumPlaces" - "EnrolledStudents") as "x"
from "Course" c
join "DBObjectBases" b_c on c."Id" = b_c."Id"
join "DBObjectBases" b_ci on b_ci."IdOwner" = b_c."Id"
join "CourseInstance" ci on ci."Id" = b_ci."Id"
それはあまりにも動揺し、私の構文エラーを与えます - ので、どこに行くのですか?
ありがとう、
アダム。
わかりません。私が「側方」の行をコメントアウトすると、それは機能します。 –
ここでは「外側」も必要ですか? '' SomeLabel ''のように'(ci。" MaximumPlaces " - " EnrolledStudents ")は動作しませんか? – Sevanteri
エラー: "EnrolledStudents"列が存在しません - 生成列を参照できません。私が言ったように、私はそれがSQL Serverのクロス・アプリケーションに相当するものだと思っていました。 –