Campo de una dimension con valores repetido

De nuevo amigo =) pues me he dado cuenta que las dimensiones no muestran datos repetidos y el cubo al procesarlo salta como errores.
¿Cómo puedo hacer para que un campo de una dimension muestre los valores repetidos?.

1 respuesta

Respuesta
1
No se si viene esto de una pregunta anterior, puedes ampliarme un poco la información.
Gracias por la atención alfredoal pues no viene de una pregunta anterior.
Lo que quiero averiguar es como poner en uno de los campo de una dimension valores repetidos. Por ejemplo:
Dimension: Ventas
Tenemos estos campos:
OrdendeVenta
Cliente
Factura
Si los vemos como jeraquias al campo "Factura" tenesmoes esto:
----------------------------------------------------------------------------------
+All
1234
Fact
wretr
Factur
------------------------------------------------------------------------------------
Y en la tabla que contiene ese campo tiene facturas retidas y eso no se ve por más que le mueva las propiedades de las dimensiones o del campo (Factura) de la dimension, ¿tal vez sabes como puedo poner en campo de la dimension datos que se dupliquen?
Gracias, gracias gracias gracias =).
Saludos
amoxto
¿Qué programa estas usando y a que te refieres con dimensiones? Si quieres encontrar datos repetidos en un tabla de una base de datos de SQL SERVER mediante el Query Analyzer te dejo una consulta de como hacerlo...
Select count(*) as "Registros Iguales", OrdendeVenta, Cliente, Factura
from Ventas (nolock)
group by OrdendeVenta, Cliente, Factura having count(1)>1
Gracias alfredoal je je pero aun no me has entendido, los campos de una dimension cunado digo eso me refiero a los atributos los atributos de la dimension que no muestran datos repetidos y si es de SQL Server 2005.
Por ejemplo la tabla Ordenesventas tiene los siguientes datos
Id - OrdenVenta - Cliente - Factura
------------------------------------------------------------------
1 OC1 Fran 1234
2 OC2 Fran 1234
3                 OC3                 Jose                   Fact
4                 OC4                 Jose                   Fact
5                 OC5                 Betty                  wretr
6                 OC6                 Betty                 wretr
7                 OC7                 Pedro                Factur
Cuando elaboro una dimension con de una relación con esa tabla o cuan cualquiera
en la jeraquias de la dimension aparecen:
De Campo(Atributo de la dimesnion) Id:
-------------------------------------------
+All
1
2
3
4
5
6
7
--------------------------------------------
Del Campo(Atributo de la dimension)
-------------------------------------------
+All
(Blanco)
(Blanco)
(Blanco)
1234
Fact
wretr
Factur
---------------------------------------------
¿Lo qué quiero saber es si hay alguna propiedad en la dimension que me deje ver estos valores repetidos?.
¿Sabes sabes sabes?
=)
Gracias por todo.
Saludos
amoxto
Mi estimado Amoxto realmente no se a que te refieres con dimensión, Mandame el query (consulta) que estas haciendo y lo analizare.
Gracias gracias por la atención =), sabes que eno veo en que te pueda ayudar el query por que el problema es con la dimension pero ahí va con todo:
select     purchtable.projid, projtable.name as porjname, purchtable.fesappliedto as ocpadre, purchtable.purchid as ochija,
purchtable.orderaccount, vendtable.name as vendname, purchtable.currencycode as tipomoneda,
purchtable.totallineamount as totaloc, vendinvoicejour.invoiceid as idfactura, vendinvoicejour.recid as vendrecid,
vendinvoicejour.invoiceamount as valorfactura, vendsettlement.settleamountcur as pagotrnas,
vendsettlement.settleamountmst as pago, purchtable.retencionperc * purchtable.totallineamount / 100 as retencion,
purchtable.amortizacionperc * purchtable.totallineamount / 100 as anticipo,
purchtable.totallineamount - (purchtable.amortizacionperc * purchtable.totallineamount / 100 + purchtable.retencionperc *
purchtable.totallineamount / 100) as subtotal,
(purchtable.totallineamount - (purchtable.amortizacionperc * purchtable.totallineamount / 100 + purchtable.retencionperc
* purchtable.totallineamount / 100) + purchtable.totaltaxgroup)
- (purchtable.amortizacionperc + purchtable.retencionperc * 1) * purchtable.totaltaxgroup / 100 as total,
purchtable.totaltaxgroup - (purchtable.amortizacionperc + purchtable.retencionperc * 1)
* purchtable.totaltaxgroup / 100 as impuestos,
((purchtable.totallineamount - (purchtable.amortizacionperc * purchtable.totallineamount / 100 + purchtable.retencionperc
* purchtable.totallineamount / 100) + purchtable.totaltaxgroup)
- (purchtable.amortizacionperc + purchtable.retencionperc * 1) * purchtable.totaltaxgroup / 100)
- vendsettlement.settleamountmst * - 1 as credito, vendsettlement.settleamountmst * 1 as saldo,
vendinvoicejour.invoicedate as fechafact
from         purchtable inner join
projtable on purchtable.projid = projtable.projid inner join
vendtable on purchtable.orderaccount = vendtable.accountnum left outer join
vendinvoicejour on purchtable.purchid = vendinvoicejour.purchid and
purchtable.dataareaid = vendinvoicejour.dataareaid left outer join
vendtrans on vendinvoicejour.ledgervoucher = vendtrans.voucher and
vendinvoicejour.invoiceaccount = vendtrans.accountnum left outer join
vendsettlement on vendtrans.recid = vendsettlement.transrecid and
vendtrans.accountnum = vendsettlement.accountnum
where     (purchtable.dataareaid = '204') and (purchtable.projid <> '')
Gracias
Saludos
amoxto
De hecho me sirve mucho,
Mira cuando usas Left Outer Join sucede que la consulta te va a arrojar datos de la tabla que tengas del lado izq. del join aun cunado la tabla con la que estés ligando no contenga datos reacionados a la consulta y en lugar de estos te manda el valor (blanco), entonces si lo que quieres es que te aparezca en todos los registros un valor debes asegurarte de que tu consulta sea redactada correctamente o de que la tabla del lado derecho del join contenga datos acorde a tu consulta. No es cuestión de configuración.
Una cosa que te recomiendo mucho es usar los alias para reducir el tamaño de tu consulta y te resulte mas manejable a la hora de analizarla y/o corregirla. Te dejo un ejemplo de como usar Alias en tu consulta. Suerte
select
p.projid, pj.name as porjname,
p.fesappliedto as ocpadre,
p.purchid as ochija,
p.orderaccount,
v.name as vendname,
p.currencycode as tipomoneda,
p.totallineamount as totaloc,
vd.invoiceid as idfactura,
vd.recid as vendrecid,
vd.invoiceamount as valorfactura,
vt.settleamountcur as pagotrnas,
vt.settleamountmst as pago,
p.retencionperc * p.totallineamount / 100 as retencion,
p.amortizacionperc * p.totallineamount / 100 as anticipo,
p.totallineamount - (p.amortizacionperc * p.totallineamount / 100 + p.retencionperc * p.totallineamount / 100) as subtotal,
(p.totallineamount - (p.amortizacionperc * p.totallineamount / 100 + p.retencionperc * p.totallineamount / 100) + p.totaltaxgroup) - (p.amortizacionperc + p.retencionperc * 1) * p.totaltaxgroup / 100 as total,
p.totaltaxgroup - (p.amortizacionperc + p.retencionperc * 1) * p.totaltaxgroup / 100 as impuestos,
((p.totallineamount - (p.amortizacionperc * p.totallineamount / 100 + p.retencionperc * p.totallineamount / 100) + p.totaltaxgroup) - (p.amortizacionperc + p.retencionperc * 1) * p.totaltaxgroup / 100) - vt.settleamountmst * - 1 as credito, vt.settleamountmst * 1 as saldo,
vd.invoicedate as fechafact
from purchtable p
inner join projtable pj on p.projid = pj.projid
inner join vendtable v on p.orderaccount = v.accountnum
left outer join vendinvoicejour vd on p.purchid = vd.purchid and p.dataareaid = vd.dataareaid
left outer join vendtrans vs on vd.ledgervoucher = vs.voucher and vd.invoiceaccount = vs.accountnum
left outer join vendsettlement vt on vs.recid = vt.transrecid and vs.accountnum = vt.accountnum
where (p.dataareaid = '204') and (p.projid <> '')

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas