仲間の SO ユーザーのおかげで、私は FOR XML を進歩させていますが、SQL 構文を正しく理解できていないことは明らかです。
次のSQLがあるとしましょう
DECLARE @Uname VARCHAR(15) = 'Dom',
@Pword VARCHAR(15) = 'Monty'
SELECT
RTRIM(@Uname) AS '@uname',
RTRIM( @Pword) AS '@pword',
(SELECT COALESCE(PortOfLanding,'') AS portOfLanding
FROM Landings.LandingHeaders
WHERE Posted = 0
FOR XML PATH('Sale'))
FOR XML PATH('abc')
実行すると、出力として次のものが生成されます
<abc uname="Dom" pword="Monty"><Sale><portOfLanding>GBHTG</portOfLanding></Sale><Sale><portOfLanding>GBHTG</portOfLanding></Sale></abc>
私が本当に望んでいたのは次のことでした
<abc uname="Dom" pword="Python">
<Sale portOfLanding= "GBHTG" />
<Sale portOfLanding= "GBHTG"/>
</abc>
実際、SQLに3番目のセクションを追加して、最終的にxmlで終わるようにしたいと思います
<abc uname="Dom" pword="Python">
<Sale portOfLanding= "GBHTG">
<saleline detail="some value here" />
<saleline detail="some value here" />
<Sale/>
<Salesnote portOfLanding= "GBHTG"/>
</abc>
元の SQL クエリのどこが間違っているか指摘してもらえますか?
ありがとう