私は自分自身でクエリに参加していますが、私のコードはase isqlで正常に動作しています。しかし、Access 2007 で使用したい場合、次のエラーが表示されます。
select TT.name, TT.lastname, max(amount) as maxsalecurrentweek
from sales
inner join
(select s1.id_employee, e.name, e.lastname, e.address, e.age, e.id_employee
from employee e
join sales s1 on e.id_emplyoee = s1.id_employee
where
some conditions here) as TT
on sales.id_employee = TT.id_employee
group by
TT.name, TT.lastname
元のコードでは、内部クエリといくつかの where 条件でさらに多くのテーブルを結合しています。しかし、上記のコードは私が何をするかを示しているはずです。
テーブルに自分で参加する方法がアクセスの問題のようです。正しいsysntaxisとは何か知っている人はいますか? または、access/JET/ACE がこの内部結合と it self アプローチをサポートしている場合は?
元のコードは次のとおりです。
select max(tort140.BEL_GRLAG_AP) as MaxPensjonGr, TT.IDE_KUNDE_PRSNR,
TT.DAT_KUNDE_FOEDT_NUM, TT.AvtaleID, TT.Orgnr, TT.Arbeidsgiver,
TT.Sivilstatus, TT.Polisestatus, TT.Årslønn from tort140
inner join
(select distinct tort128.NUM_AVTALE_ID as AvtaleID,
tort009.IDE_ARBGIV_NR as Orgnr,
tort134.NVN_ARBGIV as Arbeidsgiver,
tort127.DAT_KUNDE_FOEDT_NUM as DAT_KUNDE_FOEDT_NUM,
tort127.IDE_KUNDE_PRSNR as IDE_KUNDE_PRSNR,
tort001.STA_SIVILSTATUS as Sivilstatus,
tort128.typ_status as Polisestatus,
tort128.rte_polisegrad as Polisegrad,
tort140.BEL_LOENN_AAR as Årslønn,
tort138.IDE_SEKV_TORT138"
from tort140 left join (tort138 join (tort128 join (tort134 join (tort009 join (tort001 join tort127
on tort127.DAT_KUNDE_FOEDT_NUM=tort001.DAT_KUNDE_FOEDT_NUM and tort127.IDE_KUNDE_PRSNR=tort001.IDE_KUNDE_PRSNR)
on tort127.DAT_KUNDE_FOEDT_NUM=tort009.DAT_KUNDE_FOEDT_NUM and tort127.IDE_KUNDE_PRSNR=tort009.IDE_KUNDE_PRSNR)
on tort009.IDE_ARBGIV_NR=tort134.IDE_ARBGIV_NR)
on tort128.IDE_SEKV_TORT127 = tort127.IDE_SEKV_TORT127)
on tort128.IDE_SEKV_TORT128 = tort138.IDE_SEKV_TORT128)
on tort140.IDE_SEKV_TORT138 = tort138.IDE_SEKV_TORT138)
where tort128.NUM_AVTALE_ID = '102356' and tort128.DAT_GYLDIG_FOM <= 20120101
and (tort128.DAT_GYLDIG_TOM >= 19520000 or tort128.DAT_GYLDIG_TOM is null
and tort128.DAT_HISTORISK is null and tort128.TYP_STATUS= 'akt' and tort127.DAT_KUNDE_FOEDT_NUM >= 19650000
and tort127.DAT_KUNDE_FOEDT_NUM <= 19550000 and tort127.DAT_TERMINERT is null and tort127.DAT_REGISTRERT<= 19550000
and tort009.DAT_SLUTT is null and tort134.DAT_HISTORISK is null
and tort138.DAT_AKSJON=(select max(p.DAT_AKSJON) from tort138 p where 1=1 and p.IDE_SEKV_TORT128=tort128.IDE_SEKV_TORT128)
) as TT
on TT.IDE_SEKV_TORT138 = tort140.IDE_SEKV_TORT138
Group by TT.IDE_KUNDE_PRSNR, TT.DAT_KUNDE_FOEDT_NUM, TT.AvtaleID, TT.Orgnr,
TT.Arbeidsgiver, TT.Sivilstatus, TT.Polisestatus, TT.Årslønn from tort140
内部クエリは、access 2007 で問題なく動作します。内部結合を記述したときにエラー メッセージが表示されました。このクエリはアクセスに適していると思いますか?? ブレーキか何かが欠けていますか?