Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Помогите перевести код чтоб заработало на FB1.5 Плз!!!   Найти похожие ветки 

 
Нулевой ©   (2004-10-16 14:33) [0]

Такое:

SELECT
 MONTH(Date) AS SaleMonth,
 SUM(CASE YEAR(Date)
       WHEN 2001 THEN Amount
       ELSE 0
     END) AS [2001],
 SUM(CASE YEAR(Date)
       WHEN 2002 THEN Amount
       ELSE 0
     END) AS [2002],
 SUM(CASE YEAR(Date)
       WHEN 2003 THEN Amount
       ELSE 0
     END) AS [2003]
FROM Sales
GROUP BY MONTH(Date)
ORDER BY MONTH(Date)
GO


 
Нулевой ©   (2004-10-16 14:34) [1]

А ещё -

CREATE PROCEDURE sp_CrossTab
 @table       AS sysname,-- Таблица для построения crosstab отчета
 @onrows      AS nvarchar(128),-- Значение для группировки по строкам
 @onrowsalias AS sysname = NULL,-- Псевдоним для группируемой колонки
 @oncols      AS nvarchar(128),-- Значение для группировки по колонкам
 @sumcol      AS sysname = NULL -- Значение для суммирования
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

-- Шаг 2: Хранение ключей во временной таблице.
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)

-- Шаг 3: Средняя часть строки SQL.
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 N""" + @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

-- Шаг 4: Конец строки SQL.
SET @sql = @sql         + @NEWLINE +
 "FROM " + @table      + @NEWLINE +
 "GROUP BY " + @onrows + @NEWLINE +
 "ORDER BY " + @onrows

SET NOCOUNT OFF
PRINT @sql  + @NEWLINE-- для отладки
EXEC (@sql)
GO


 
Нулевой ©   (2004-10-16 14:44) [2]

...http://www.softmatics.ru/sql/10.htm


 
Zacho ©   (2004-10-16 21:58) [3]

Я, например, не помогу. Хотя мог бы, наверное.

Читай http://ln.com.ua/~openxs/articles/smart-questions-ru.html

И кроме того, подумай, почему твой вопрос не вызывает никакого желания помогать.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
14-1098721315
ArMellon
2004-10-25 20:21
2004.11.14
Народ дайте ссылку где SoftIce под вин ХР взять


1-1098949125
gonzales
2004-10-28 11:38
2004.11.14
WinHelp?


1-1099284575
radix
2004-11-01 07:49
2004.11.14
Как вставить изображение (jpeg) в документ Word ?


14-1098780784
Труп Васи Доброго
2004-10-26 12:53
2004.11.14
Перевод чисел из dec в hex и bin


3-1097914633
arick
2004-10-16 12:17
2004.11.14
Проблема в подключении TSQLConnection (dbExpress)