0

私のデータベースには、男性と女性の両方とその子孫を含む個人のグループのすべてのレコードを含むテーブルがあります。各レコードには、その個人の出生地があります。

個人のID、生年月日、および両親を示す特定の範囲の日付の間のすべての生年月日を表示するカーソルを作成しようとしています。これまでのところ問題ありません

私のSELECTステートメントは次のとおりです

SELECT DISTINCT IdNumber,birthstate, sex, DateOfBirth, father, mother;
FROM members;
WHERE (DateOfDeath>=ldStartDate AND DateOfDeath<=ldEndDate);
ORDER BY 1;
INTO CURSOR ReportMaster

これは私が欲しいものを正確に与えてくれます-今私がしたいのは同じファイル内から父と母の誕生状態を引き出すことです、それを動的に(同じselectステートメント内で)行う方法はありますか?

4

2 に答える 2

2
    SELECT DISTINCT m.IdNumber,m.birthstate, m.sex, m.DateOfBirth, m.father, m.mother,
    mother.birthstate, father.birthsate
    FROM members m
    left outer join members mother on mother.IdNumber = m.mother 
    left outer join members father on father.IdNumber = m.father
    WHERE (m.DateOfDeath>=ldStartDate AND m.DateOfDeath<=ldEndDate)

常に父親と母親がいることが確実にわかっている場合は、左側の外部結合を内部結合に変更できる可能性があります。

また、「mother」と「father」は、membersテーブルのIdNumber列への外部キーであると想定しています。

于 2013-02-01T18:53:02.100 に答える
0

@aquinas、これはVFPの適切な構文ではありません。mを使用しました。ローカルエイリアスとして!m.ldStartDateとm.ldEndDateである必要がありますが、残りのmがあります。そのクエリでは、単にエラーへの誘いです(論理的なエラー、運が良ければ見過ごされたり、エラーとして表示されたりする可能性があります)。

mを予約してください。メモリ変数用。このクエリでこのように機能するmdotは、修正されることのないバグにすぎません。

PS:あなたが経験豊富な開発者なら、それはあなたを噛まないかもしれません。しかし、質問の持ち主は初級・中級だと思いますので、このように学ぶべきではありません。

于 2013-02-21T14:41:15.737 に答える