|
|
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
sp_CrossTab у меня проблема @oncols идет в типе smalldatetime, получается много значений как в эту процедуру ввести диапазон дат и ковертнуть в 104 styl и еще если можно скажите сколько значений можно присвоить столбцам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 23:53:08 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Ты, мил человек, как положено бы зашел, поздоровался, рассказал о своем горе, объяснил, что это за процедура sp_CrossTab, привел бы ее код, исходные данные в таблицах. Тогда бы мы всем миром наверное и помогли твоему горю. А до тех пор, пока ты не научишься формулировать вопросы, все поднятые тобой проблемы, так и останутся твоими проблемами. -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 00:35:15 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Та ни, НиКу_Ку, ще не все гуру вмэрли. Я те так скажу. Значить, шоби вам зделать запрос, необходимо два ID, а вже потом в зависимости от того, шо ви хотите получить у результатэ, вам будет сделать это легко. Скажу от себя больше: офигенно легко. Ну мабуть понадобятся три ID. Альбо чатыри. Ну гдэ-то пят, не больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 00:35:32 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
/topic/12839 от 2002-09-22 23:33. \r Ето шоби было понятн, за шо мы туть с Никуку перетираем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 00:44:32 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
процедура CREATE PROC sp_CrossTab @table AS sysname, -- Table to crosstab @onrows AS nvarchar(128), -- Grouping key values (on rows) @onrowsalias AS sysname = NULL, -- Alias for grouping column @oncols AS nvarchar(128), -- Destination columns (on columns) @sumcol AS sysname = NULL -- Data cells AS set nocount on DECLARE @sql AS varchar(8000), @NEWLINE AS char(1) SET @NEWLINE = CHAR(10) -- ШАГ 1: начало строки SQL SET @sql = "SELECT " + @NEWLINE + " " + @onrows + CASE WHEN @onrowsalias IS NOT NULL THEN " AS " + @onrowsalias ELSE "" END CREATE TABLE #keys(keyvalue nvarchar(100) NOT NULL PRIMARY KEY) DECLARE @keyssql AS varchar(1000) SET @keyssql = "INSERT INTO #keys " + "SELECT DISTINCT CAST(" + @oncols + " AS nvarchar(100)) " + "FROM " + @table EXEC (@keyssql) DECLARE @key AS nvarchar(100) SELECT @key = MIN(keyvalue) FROM #keys WHILE @key IS NOT NULL BEGIN SET @sql = @sql + "," + @NEWLINE + " SUM(CASE CAST(" + @oncols + " AS nvarchar(100))" + @NEWLINE + " WHEN """ + @key + """ THEN " + CASE WHEN @sumcol IS NULL THEN "1" ELSE @sumcol END + @NEWLINE + " ELSE 0" + @NEWLINE + " END) AS [" + @key + "]" SELECT @key = MIN(keyvalue) FROM #keys WHERE keyvalue > @key END SET @sql = @sql + @NEWLINE + "FROM " + @table + @NEWLINE + "GROUP BY " + @onrows + @NEWLINE + "ORDER BY " + @onrows PRINT @sql + @NEWLINE -- For debug exec (@sql) понятно, что при вызове процедуры можно конвертировать в 104 стиль, но доходя до 122 строки почему-то пишет 170 и 150 ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 00:51:46 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Слон и прости, что не поздоровался!!!!!!!!!!! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 00:54:37 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Кошкинсон тебе во всяком случае придется эти ID сделать для идентификации а потом можешь цепляться за них или курсором или updat-ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 01:00:17 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Ну что слон поможешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 01:23:54 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
Так, не совсем осталось понятно, а что же оно делать должно? И как, например, ее вызвать для пробы? -- Слон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 01:55:35 |
|
||
|
Что гуру все вымерли?
|
|||
|---|---|---|---|
|
#18+
А вы не думали над тем, что может быть 8000 байтов может не хватить для всего динамического запроса ? Потому как для базы pubs все работает Код: plaintext 1. 2. 3. И уже в этом примере с 10 разными датами длина динамического запроса 1318 байт. А у вас их больше 122, так ведь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 04:10:54 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32052248&tid=1820146]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 342ms |

| 0 / 0 |
