У меня есть XML из текстового файла я получил странную ошибку (для меня) Существуют 2 клиентов и 6 продуктов на текстовый файлНужна помощь XML из текста
, как является
Результата набор
CUSTID ORDER ID
98295 29199752211 0 1 2321
98295 29199752211 0 1 76
98295 29199752211 0 2 179
98295 29199752211 0 3 180
98295 29199752211 0 4 320
98295 29199752211 0 5 NULL
Почему cust id такой же? в текстовом файле 2. я буду рад, если смогу воспользоваться некоторой помощью.
SELECT
(SELECT LNGNO FROM ARTUT13.DBO.TBLFATURA WHERE TXTOZELKOD=(c6.value('(//FISLER/FIS/FISID)[1]','VARCHAR(100)'))),--[LNGNO]
0,--[BYTTUR]
c6.value('(KALEMNO)[1]','VARCHAR(100)'),--[LNGKALEMSIRA]
(SELECT LNGKOD FROM ARTUT13.DBO.TBLURUN WHERE TXTKOD=(c6.value('(URUNKODU)[1]','VARCHAR(100)'))),
c6.value('(MIKTAR)[1]','VARCHAR(100)'),--[DBLMIKTAR]
1,--[BYTBIRIMSIRA]
1,--[DBLCEVRIM]
c6.value('(BIRIMFIYAT)[1]','VARCHAR(100)'),--[DBLBIRIMFIYAT]
0,--[BYTKAYITTIP]
0,--[BYTDETAYMAL]
c6.value('(KDV)[1]','VARCHAR(100)'),--[DBLKDVORANI]
c6.value('(FIYAT)[1]','VARCHAR(100)'),--[DBLNETFIYAT]
'',--[TXTOZELKOD]
0,--[LNGVADEGUNU]
GETDATE(),--[TRHSONISLEMTARIHI]
'MUHASEBE2',--[TXTSONISLEMHOST]
'',--[DBLOTV]
c6.value('(//FISLER/FIS/FISID)[1]','VARCHAR(100)'),--[TXTOZELKOD1]
''--[TXTOZELKOD2]
from
(select cast(c1 as xml) from OPENROWSET (BULK 'C:\AKTAR\FATURA.txt',SINGLE_BLOB
) as T1(c1))as T2(c2)
outer apply c2.nodes('FISLER/FIS/KALEMLER/KALEM') T6(c6)
Текстовый файл содержит
<FISLER>
<FIS>
<FISTIPI>SATIS</FISTIPI>
<FISID>29199752211</FISID>
<FISNO>a67502</FISNO>
<IPTAL>0</IPTAL>
<TARIH>13.02.2013</TARIH>
<MUSKODU>35170339P</MUSKODU>
<MUSADI>MEHMET PEHLIVAN - MORTAN GIDA MEHMET PEHLIVAN</MUSADI>
<VERGIDAIRESI>KARABURUN MAL MD</VERGIDAIRESI>
<VERGINO>47035582576</VERGINO>
<DEPOKODU>01</DEPOKODU>
<ODEMETIPI>6</ODEMETIPI>
<TOPLAMBRUT>1200.24</TOPLAMBRUT>
<TOPLAMISKONTO>60.01</TOPLAMISKONTO>
<TOPLAMKDV>205.24</TOPLAMKDV>
<TOPLAMNET>1345.47</TOPLAMNET>
<SATISTEMSILCISIKODU>001</SATISTEMSILCISIKODU>
<DAGITICIKODU></DAGITICIKODU>
<ARACKODU></ARACKODU>
<ARACPLAKA></ARACPLAKA>
<SEVKNO></SEVKNO>
<VADETARIHI>06.03.2013</VADETARIHI>
<KALEMLER>
<KALEM>
<KALEMNO>1</KALEMNO>
<URUNKODU>4009011024</URUNKODU>
<URUNADI>EFE KLASİK RAKI45º-100clx12AD TAVA(63,50 FİYATLI)</URUNADI>
<MIKTAR>24</MIKTAR>
<BIRIMFIYAT>50.01</BIRIMFIYAT>
<FIYAT>1200.24</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
<ISKONTOLAR>
<ISKONTO>
<price>1200.24</price>
<KODU></KODU>
<ADI>Ürün İsk.1</ADI>
<TIPI></TIPI>
<ORAN>5</ORAN>
<TUTAR>60.012</TUTAR>
</ISKONTO>
</ISKONTOLAR>
</KALEM>
</KALEMLER>
</FIS>
<FIS>
<FISTIPI>SATIS</FISTIPI>
<FISID>29199773107</FISID>
<FISNO>a67511</FISNO>
<IPTAL>0</IPTAL>
<TARIH>13.02.2013</TARIH>
<MUSKODU>100242</MUSKODU>
<MUSADI>NUMBER ONE APART OTEL RESTAURANT</MUSADI>
<VERGIDAIRESI>KARABURUN</VERGIDAIRESI>
<VERGINO>50545253560</VERGINO>
<DEPOKODU>01</DEPOKODU>
<ODEMETIPI>6</ODEMETIPI>
<TOPLAMBRUT>2634.24</TOPLAMBRUT>
<TOPLAMISKONTO>195.21</TOPLAMISKONTO>
<TOPLAMKDV>439.03</TOPLAMKDV>
<TOPLAMNET>2878.06</TOPLAMNET>
<SATISTEMSILCISIKODU>001</SATISTEMSILCISIKODU>
<DAGITICIKODU></DAGITICIKODU>
<ARACKODU></ARACKODU>
<ARACPLAKA></ARACPLAKA>
<SEVKNO></SEVKNO>
<VADETARIHI>06.03.2013</VADETARIHI>
<KALEMLER>
<KALEM>
<KALEMNO>1</KALEMNO>
<URUNKODU>4001017212</URUNKODU>
<URUNADI>EFE YAŞ ÜZÜM RAKISI (45º) - 70 cl 12LI KOLİ</URUNADI>
<MIKTAR>12</MIKTAR>
<BIRIMFIYAT>47.03</BIRIMFIYAT>
<FIYAT>564.36</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
<ISKONTOLAR>
<ISKONTO>
<price>564.36</price>
<KODU></KODU>
<ADI>Ürün İsk.1</ADI>
<TIPI></TIPI>
<ORAN>10</ORAN>
<TUTAR>56.436</TUTAR>
</ISKONTO>
</ISKONTOLAR>
</KALEM>
<KALEM>
<KALEMNO>2</KALEMNO>
<URUNKODU>4001</URUNKODU>
<URUNADI>EFE YAŞ ÜZÜM RAKISI (45º) - 20 cl 24 LU KOLİ</URUNADI>
<MIKTAR>24</MIKTAR>
<BIRIMFIYAT>16.07</BIRIMFIYAT>
<FIYAT>385.68</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
<ISKONTOLAR>
<ISKONTO>
<price>385.68</price>
<KODU></KODU>
<ADI>Ürün İsk.1</ADI>
<TIPI></TIPI>
<ORAN>10</ORAN>
<TUTAR>38.568</TUTAR>
</ISKONTO>
</ISKONTOLAR>
</KALEM>
<KALEM>
<KALEMNO>3</KALEMNO>
<URUNKODU>4001013724</URUNKODU>
<URUNADI>EFE YAŞ ÜZÜM RAKISI (45º) - 35 cl 24 LU KOLİ</URUNADI>
<MIKTAR>24</MIKTAR>
<BIRIMFIYAT>26.66</BIRIMFIYAT>
<FIYAT>639.84</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
<ISKONTOLAR>
<ISKONTO>
<price>639.84</price>
<KODU></KODU>
<ADI>Ürün İsk.1</ADI>
<TIPI></TIPI>
<ORAN>10</ORAN>
<TUTAR>63.984</TUTAR>
</ISKONTO>
</ISKONTOLAR>
</KALEM>
<KALEM>
<KALEMNO>4</KALEMNO>
<URUNKODU>4001011013</URUNKODU>
<URUNADI>EFE YAŞ ÜZÜM RAKISI (45º) - 100 cl 12LI TAVA</URUNADI>
<MIKTAR>6</MIKTAR>
<BIRIMFIYAT>60.37</BIRIMFIYAT>
<FIYAT>362.22</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
<ISKONTOLAR>
<ISKONTO>
<price>362.22</price>
<KODU></KODU>
<ADI>Ürün İsk.1</ADI>
<TIPI></TIPI>
<ORAN>10</ORAN>
<TUTAR>36.222</TUTAR>
</ISKONTO>
</ISKONTOLAR>
</KALEM>
<KALEM>
<KALEMNO>5</KALEMNO>
<URUNKODU>4010017001</URUNKODU>
<URUNADI>EFE 5 YILLIK RAKI45º-70clx3AD KOLİ</URUNADI>
<MIKTAR>6</MIKTAR>
<BIRIMFIYAT>113.69</BIRIMFIYAT>
<FIYAT>682.14</FIYAT>
<BIRIM></BIRIM>
<KDV>18</KDV>
</KALEM>
</KALEMLER>
</FIS>
</FISLER>
Не похож результирующий набор у вас есть какая-либо отношение к XML или запросу. В XML-формате нет значения '98295', и в выводе запроса нет столбца' custid'. –
Да, я просто совпадал с Custid, который является на txt-файле. 98295 происходит из другой таблицы (SELECT LNGNO FROM ARTUT13.DBO.TBLFATURA WHERE TXTOZELKOD = (c6.value ('(// FISLER/FIS/FISID) [1]', 'VARCHAR (100)'))), thnx –
user2078011
Мое предположение об этом будет заключаться в том, что ваша проблема заключается в том, что вы используете 'c6.value ('(// FISLER/FIS/FISID) [1]', 'VARCHAR (100)')', потому что всегда будет найден первый 'FISID 'в XML. Попробуйте это вместо этого. 'C6.value ('(../../ FISID) [1]', 'VARCHAR (100)')'. –