Nejčastěji odpovídající uživatel
Pivot

Dotaz
-
Potřeboval bych pomoci.
Mám tabulku a k ní mám další tabulku, která představuje rozšiřující informace. Skrátka - mám ITC prvek (př. switch) ten má 5 pevně daných atributů (sloupců) a potřebuji dynamicky přidávat další (sloupce). Vyřešil jsem to následovně. Druhá tabulka obsahuje co řádek, to jeden atribut. Zobrazení je OK (jednoduché), ale jak mám prohledávat. Když dvě tabulky k sobbě najoinuji, tak to nemůže fungovat. A PIVOT neumím dopředu složit, tedy to v závorce ([1],[2],...). Případně pošlu dbf soubor s příkladem.
Dík moc.
Odpovědi
-
Jedná se o klasické vyhledávání v atributové databázi.
Dejme tomu, že máte tabulky:
Itc [ItcID, Name, ...]
Attribute [AttributeID, AttributeName, AttributeType, ...]
ItcAttribute [ItcID, AttributeID, AttributeValue]
a chcete hledat na podmínku AND přes dva atributy
SELECT ItcID FROM Itc INNER JOIN Attribute aSerialNumber ON (Itc.ItcID = a1.ItcID AND a1.AttributeID = 5 /* AttribteID pro SerialNumber */) INNER JOIN Attribute aModelNumber ON (Itc.ItcID = a2.ItcID AND a2.AttributeID = 10 /* AttribteID pro ModelNumber */) WHERE (Itc.Name LIKE 'switch%') AND (aSerialNumber.AttributeValue = '2561-4567') AND (aModelNumber.AttributeValue = 'P456-45654-456')
...pokud platí, že každý ITC záznam má jenom jedno SN a jedno MN, pak Vám vypadnou jen záznamy, které splňují podmínky. Jinak by se to muselo ještě ošetřit a jednalo by se o atributové kolekce (více SN k jednomu ITC)
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator čtvrtek 2. července 2009 14:06
Všechny reakce
-
-
Mám tři tabulky atributů: string, number, odkaz. Odkaz nyní neřeším. Pokud spáruji prvek a jeho př. tři atributy, tak mi vznikne seznam tří řádků. To znemená že nemohu použít AND při hledání v těchto třech řádcích. Už to chápeš?
Jedno řešení mám, ale má ještě zádrhel. -
Jedná se o klasické vyhledávání v atributové databázi.
Dejme tomu, že máte tabulky:
Itc [ItcID, Name, ...]
Attribute [AttributeID, AttributeName, AttributeType, ...]
ItcAttribute [ItcID, AttributeID, AttributeValue]
a chcete hledat na podmínku AND přes dva atributy
SELECT ItcID FROM Itc INNER JOIN Attribute aSerialNumber ON (Itc.ItcID = a1.ItcID AND a1.AttributeID = 5 /* AttribteID pro SerialNumber */) INNER JOIN Attribute aModelNumber ON (Itc.ItcID = a2.ItcID AND a2.AttributeID = 10 /* AttribteID pro ModelNumber */) WHERE (Itc.Name LIKE 'switch%') AND (aSerialNumber.AttributeValue = '2561-4567') AND (aModelNumber.AttributeValue = 'P456-45654-456')
...pokud platí, že každý ITC záznam má jenom jedno SN a jedno MN, pak Vám vypadnou jen záznamy, které splňují podmínky. Jinak by se to muselo ještě ošetřit a jednalo by se o atributové kolekce (více SN k jednomu ITC)
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator čtvrtek 2. července 2009 14:06
-