Ahoj,
DROP TABLE IF EXISTS #Columns;
SELECT Column_name, '#808000' as color INTO #Columns FROM Information_schema.columns
WHERE Table_name LIKE 'Hodnoty' AND Column_name NOT IN ('Id');
UPDATE #Columns SET #Columns.color = Barvy.color FROM #Columns INNER JOIN
(SELECT color, columnName FROM ChartColorSchema WHERE userName = 'jmeno') as Barvy
ON #Columns.Column_name = Barvy.columnName;
SELECT * FROM #Columns;
Výše uvedený kód mi získá názvy sloupců z tabulky Hodnoty a z tabulky ChartColorSchema k nim doplní hodnoty color pokud existují, jinak defaultní hodnota. Pořád se mi nedaří přijít na to, jak to udělat bez dočasný tabulky jedním dotazem.
Ještě definice ChartColorSchema jak ji vytvořilo MS VS:
CREATE TABLE [dbo].[ChartColorSchema] (
[id] INT IDENTITY (1, 1) NOT NULL,
[userName] NVARCHAR (256) NOT NULL,
[color] NCHAR (8) NOT NULL,
[columnName] NVARCHAR (25) NOT NULL,
CONSTRAINT [PK_ChartColorSchema] PRIMARY KEY CLUSTERED ([id] ASC),
CONSTRAINT [FK_ChartColorSchema_ChartColorSchema] FOREIGN KEY ([id]) REFERENCES [dbo].[ChartColorSchema] ([id])
);
Jak dosáhnout stejného výsledku jedním dotazem bez dočasné tabulky?
hu