Taki kod:
Kod: Zaznacz cały
SELECT Atr_Wartosc, Atr_AtrTyp, Atr_AtrFirma,Atr_AtrNumer, Atr_AtrLp
FROM CDN.Atrybuty
JOIN CDN.ZamElem as ZS ON Atr_ObiTyp = ZS.ZaE_GIDTyp AND Atr_ObiNumer = ZS.ZaE_GIDNumer and Atr_ObiLp = ZS.ZaE_gidlp AND Atr_AtkID = {ATO_ATKID}
JOIN CDN.ZamZamLinki ON [ZZL_ZSGidTyp] = ZS.ZaE_GIDTyp AND [ZZL_ZSGidNumer] = ZS.ZaE_GIDNumer AND [ZZL_ZSGidLp] = ZS.ZaE_GIDLp
JOIN CDN.ZamElem as ZZ ON [ZZL_ZZGidTyp] = ZZ.ZaE_GIDTyp AND [ZZL_ZZGidNumer] = ZZ.ZaE_GIDNumer AND [ZZL_ZZGidLp] = ZZ.ZaE_GIDLp
where {filtrsql}
Przejrzałem poprzednie posty związane z kopiowaniem, ale odnoszę wrażenie, że jest to za każdym razem trochę "macanie". Czy ktoś mógłby wyjaśnić JAK to działa?
Poniższy kod:
Kod: Zaznacz cały
SELECT Atr_Wartosc, Atr_AtrTyp, Atr_AtrFirma,Atr_AtrNumer, Atr_AtrLp FROM
CDN.Atrybuty
JOIN CDN.ZamElem as ZS ON Atr_ObiTyp = ZS.ZaE_GIDTyp AND Atr_ObiNumer = ZS.ZaE_GIDNumer and Atr_ObiLp = ZS.ZaE_gidlp
join CDN.traselem on trs_zlcNumer=ZS.ZaE_GIDNumer and trs_zlcTyp=ZS.ZaE_GIDTyp and trs_zlclp=ZS.ZaE_gidlp
join CDN.traElem on trs_gidNumer=trE_GIDNumer and trs_GIDTyp=trE_GIDTyp and trs_gidlp=tre_gidlp
where Atr_AtkID = {ATO_ATKID} and {filtrsql}
P.S. W tym poście http://cdn.3lance.pl/viewtopic.php?f=13&t=2141 Paweł podaje przykład kopiowania z pozycji ZS na pozycji WM. Działa w przypadku WM. Ale uwaga na ZWM!!! Ponieważ (niekonsekwentnie) ZWM sortuje pozycje wydań, to atrybuty przepisują się nie do tych pozycji (bo pozycja docelowa dostaje inny numer Lp).