Главная страница
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.052 c
4-1096839798
Ded Moroz
2004-10-04 01:43
2004.11.14
Перехват


14-1098712051
Empleado
2004-10-25 17:47
2004.11.14
Есть ли знатоки C (не C++)


14-1098859173
имя
2004-10-27 10:39
2004.11.14
Интересно, а как русские относятся к тому, что ваш президент


3-1098082300
Леван
2004-10-18 10:51
2004.11.14
Что за чушь?


4-1096770782
Sergeika
2004-10-03 06:33
2004.11.14
Как изменить яркость монитора и контрастность