쿼리에서 반복되는 행을 제거해야하지만 예상 한 결과를 얻을 수 없습니다. 내가 GROUP BY
을 사용해야한다는 것을 알았지 만, 그 결과를 얻지 못한다면 내가 전에 얻었던 것을 얻게된다. 이 방법이 X ++의 고유 레코드에 올바른 방법입니까?Dynamics X ++에서 별개의 레코드를 만드는 방법은 무엇입니까?
여기 RecId - Location - StateName
5637145326 - 0 -
5637145327 - 0 -
5637145328 - 0 -
5637146076 - 0 -
5637146077 - 0 -
5637150576 - 0 -
5637150577 - 0 -
5637150578 - 0 -
가 GROUP BY RecId
없이입니다 :
5637150578 - 5637145326 - New York
...
5637150578 - 5637145326 - New York
다음
SELECT RecId, City, BuildingCompliment
FROM %1 GROUP BY RecId JOIN Location FROM %2
OUTER JOIN StateId, Name FROM %3
OUTER JOIN ISOcode FROM %4
OUTER JOIN CurrencyCode, Symbol, Txt FROM %5
OUTER JOIN ShortName FROM %6
WHERE (%1.ValidTo == DateTimeUtil::maxValue() || %1.ValidTo > DateTimeUtil::utcNow())
&& %2.Location == %1.Location
&& %3.CountryRegionId == %2.CountryRegionId && %3.StateId == %2.State
&& %4.CountryRegionId == %1.CountryRegionId
&& %5.CurrencyCode == %4.CurrencyCode
&& %6.LanguageId == 'EN-US' && %6.CountryRegionId == %1.CountryRegionId
이
GROUP BY RecId
과 결과입니다 : 그건 그렇고, 내가 6 개 테이블을 사용하고, 여기 내 X ++ 쿼리
모두 반복됩니다. 내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까? 감사!
UPDATE
테이블/사용 조회 :
DirPartyPostalAddressView //%1
LogisticsPostalAddress //%2
LogisticsAddressState //%3
LogisticsAddressCountryRegion //%4
Currency //%5
LogisticsAddressCountryRegionTranslation //%6
편집 쿼리
string sqlAxCommand = @"SELECT RecId, City, BuildingCompliment, Location, CountryRegionId FROM %2
GROUP BY RecId, City, BuildingCompliment, Location, CountryRegionId
OUTER JOIN StateId, Name FROM %3
WHERE %3.CountryRegionId == %2.CountryRegionId
&& %3.StateId == %2.State
OUTER JOIN ISOcode FROM %4
WHERE %4.CountryRegionId == %2.CountryRegionId
OUTER JOIN CurrencyCode, Symbol, Txt FROM %5
WHERE %5.CurrencyCode == %4.CurrencyCode
OUTER JOIN ShortName FROM %6
WHERE %6.CountryRegionId == %2.CountryRegionId
&& %6.LanguageId == 'EN-US'
EXISTS JOIN %1
WHERE %1.Location == %2.Location
&& %1.IsPostalAddress == NoYes::Yes";
% 1- % 6을 실제 테이블 이름으로 바꿀 수 있다면 도움이 될 것입니다. – 10p
@ 10p 확실합니다. 방금 내 질문을 업데이트했습니다. – eestein
X ++에서 (정적) 메서드를 만들고 C#에서 호출하는 것이 가능합니까? 이 방법으로 모든 표준 X ++ 함수와 클래스를 사용할 수 있습니다. 절대적으로 필요한 경우 X ++에서 직접 SQL을 실행할 수도 있습니다 (dataAreaId 및/또는 파티션을 포함하는 것을 잊지 마십시오). –