问题描述
我已经有了来自 XML 的信息,但我的问题是,如何将其保存在本地表中?
DECLARE @docHandle int
DECLARE @xmlDocument xml
SET @xmlDocument = '
<Comprobante Fecha="2020-05-30" SubTotal="1324.56" Moneda="MXN" Total="1398.95" TipodeComprobante="I" MetodoPago="PPD">
<Emisor Rfc="SIH9511279T7" Nombre="HEB" RegimenFiscal="601"/>
<Receptor Rfc="XXXX123456XXX" Nombre="USER" UsoCFDI="G03"/>
<Conceptos>
<Concepto ClaveProdServ="50404600" Cantidad="1.00" ClaveUnidad="H87" Unidad="PZ" Descripcion="LECHUGA" ValorUnitario="43.95" Importe="43.95">
<Impuestos>
<Traslados>
<Traslado Base="43.95" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
<Traslado Base="43.95" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="16.00"/>
</Traslados>
</Impuestos>
</Concepto>
<Concepto ClaveProdServ="42141606" Cantidad="1.00" ClaveUnidad="H87" Unidad="PZ" Descripcion="HUGGIES" ValorUnitario="438.79" Importe="438.79">
<Impuestos>
<Traslados>
<Traslado Base="438.79" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="70.21"/>
<Traslado Base="438.79" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="7.23"/>
</Traslados>
</Impuestos>
</Concepto>
</Conceptos>
<Impuestos TotalImpuestosTrasladados="74.39">
<Traslados>
<Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="70.21"/>
<Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
<Traslado Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="4.18"/>
</Traslados>
</Impuestos>
<Complemento>
<TimbreFiscalDigital Version="1.1" UUID="21C9FD4A" FechaTimbrado="2020-06-30T10:58:01" RfcProvCertif="EEL961104G96"/>
</Complemento>
</Comprobante>
'
EXEC sp_xml_preparedocument @docHandle OUTPUT,@xmlDocument
SELECT *
FROM OPENXML (@docHandle,'/Comprobante/Conceptos/Concepto/Impuestos/Traslados/Traslado/@Importe')
WITH ( Imp1 money '.',Tasa decimal(6,6) '../@TasaOCuota',Descrip varchar(100) '../../../../@Descripcion',Imp2 money '../../../../@Importe',TotImp money '/Comprobante/Impuestos/@TotalImpuestosTrasladados',RFCEmisor varchar(13) '/Comprobante/Emisor/@Rfc',Fecha date '/Comprobante/@Fecha',UUID varchar(50) '/Comprobante/Complemento//TimbreFiscalDigital/@UUID',RFCReceptor varchar(13) '/Comprobante/Receptor/@Rfc')
EXEC sp_xml_removedocument @docHandle
结果如下:
Imp1 | 塔萨 | 描述 | Imp2 | TotImp | RFCEmisor | 费查 | UUID | RFC 接收器 |
---|---|---|---|---|---|---|---|---|
0.00 | 0.000000 | LECHUCA | 43.95 | 74.39 | SIH9511279T7 | 2020-05-30 | 21C9FD4A | XXXX123456XXX |
16.00 | 0.160000 | LECHUGA | 43.95 | 74.39 | SIH9511279T7 | 2020-05-30 | 21C9FD4A | XXXX123456XXX |
70.21 | 0.160000 | 拥抱 | 438.79 | 74.39 | SIH9511279T7 | 2020-05-30 | 21C9FD4A | XXXX123456XXX |
7.23 | 0.000000 | 拥抱 | 438.79 | 74.39 | SIH9511279T7 | 2020-05-30 | 21C9FD4A | XXXX123456XXX |
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)