как разделить данные на несколько столбцов в TSQL - PullRequest
1 голос
/ 04 июля 2010

У меня есть около 1000 строк в базе данных, которые я хочу разделить по группам столбцов. я имею в виду в следующем формате

SlNo.    Name    Price      SlNo.    Name    Price      SlNo.    Name    Price

как я могу написать запрос для отображения данных в вышеуказанном формате, как в отчете rdlc против 2008 года. Я не могу показать данные в этом формате Любая помощь будет оценена ...

Структура таблицы продаж

CREATE TABLE [dbo].[Sales](
[SalesId] [int] IDENTITY(1,1) NOT NULL,
[MemoNo] [int] NULL,
[CustomerID] [int] NULL,
[SalesmanID] [int] NULL,
[DisRate] [int] NULL,
[CoolingCh] [int] NULL,
[GrandTotal] [int] NULL,
[SubTotal] [int] NULL,
[BillDate] [varchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[AddedOn] [datetime] NULL,
 CONSTRAINT [PK_Sales] PRIMARY KEY CLUSTERED 
(
[SalesId] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

спасибо .........

Ответы [ 2 ]

2 голосов
/ 04 июля 2010

Это должно быть просто

SELECT 
    SalesId, [Name], GrandTotal as 'Price'
FROM 
    dbo.Sales 
WHERE
    (some condition)

для извлечения всех необходимых данных, а затем в конструкторе отчетов SQL Server сделайте так, чтобы в отчете отображались три столбца, повторенные три раза по разным ...

Используйте SQL Server и T-SQL для извлечения данных и используйте службы отчетов SQL Server для форматирования вывода в соответствии с вашими потребностями.

1 голос
/ 04 июля 2010

Я думаю, что можно что-то сделать в духе ...

SELECT
    SELECT *
        FROM (SELECT SalesId, Name, Price
                  FROM Sales S2
                  WHERE S2.SalesId = S1.SalesId    ) as Tab1,
    SELECT *
        FROM (SELECT SalesId, Name, Price
                  FROM Sales S2
                  WHERE S2.SalesId = S1.SalesId + 1) as Tab2,
    SELECT *
        FROM (SELECT SalesId, Name, Price
                  FROM Sales S2
                  WHERE S2.SalesId = S1.SalesId + 2) as Tab3
    FROM Sales
    WHERE ...every third row...;

Я не могу заполнить полную информацию, потому что я не эксперт по TSQL, а также таблица не содержит SlNo, Name или Price, которые вы, вероятно, должны откуда-то получить. Является ли это улучшением при написании кода, как предполагает Рональд Вильденберг, - дело вкуса.

...