Я пытаюсь получить все данные по всем датам в месяц.Показать каждую дату, даже если она не имеет значения
У меня есть эта таблица. У меня проблема, когда я создаю его в sqlfiddle.
CREATE TABLE Outlet
(
IdOutlet [int] NOT NULL,
OutletCode [varchar](100) NOT NULL,
Description [varchar](225) NULL
);
Выход записи (s)
1 | K-AEON | Desc1
2 | K-LFTEJM | Desc2
и эта таблица
CREATE TABLE [dbo].[SalesOrderHeader]
(
[TransactionNo] [varchar](32) NOT NULL,
[DocumentNo] [varchar](32) NOT NULL,
[TransDate] [datetime] NOT NULL,
[ETADate] [datetime] NOT NULL,
[ExternalDocument] [varchar](32) NOT NULL,
[Reference] [varchar](64) NOT NULL,
[RefTransNo] [varchar](32) NOT NULL,
[Category] [varchar](32) NOT NULL,
[CustomerCode] [varchar](16) NOT NULL,
[Remark] [varchar](64) NOT NULL,
[Remark2] [varchar](64) NOT NULL,
[TermOfPayment] [datetime] NOT NULL,
[Currency] [varchar](16) NOT NULL,
[Rate] [decimal](38, 20) NOT NULL,
[UseVAT] [int] NOT NULL,
[SubTotal] [decimal](38, 20) NOT NULL,
[DiscPercent] [decimal](38, 20) NOT NULL,
[DiscAmount] [decimal](38, 20) NOT NULL,
[GrandTotal] [decimal](38, 20) NOT NULL,
[TotalReceivable] [decimal](38, 20) NOT NULL,
[FromCustomerCode] [varchar](32) NOT NULL,
[PostingStatus] [int] NULL,
[PostingBy] [varchar](16) NULL,
[PostingDate] [datetime] NULL,
[CreatedDate] [datetime] NOT NULL,
[CreatedBy] [varchar](16) NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
[ModifiedBy] [varchar](16) NOT NULL,
[CustomerReceivable] [varchar](16) NULL,
[LocationCode] [varchar](16) NOT NULL,
[VatPercent] [float] NOT NULL,
[VatAmount] [float] NULL,
[FinalReleasedDate_Outlet] [datetime] NULL,
[CancelStatus] [int] NULL,
[CancelReason] [varchar](100) NULL,
[CancelledBy] [varchar](50) NULL,
CONSTRAINT [PK__SalesOrd__554342D81FCDBCEB]
PRIMARY KEY CLUSTERED ([TransactionNo] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Как вы можете видеть, у меня есть две таблицы. Пока у меня есть этот запрос для извлечения всех моих данных.
select
CustomerCode, CONVERT(date, transdate) tanggal,
SUM(totalreceivable) total
from
SalesOrderHeader
where
TransDate between '$start_date' and '$end_date'
group by
CONVERT(date, transdate), CustomerCode
Вот пример привести
K-AEON 2016-07-18 2841600.00000000000000000000
K-LFTEJM 2016-07-17 4862190.00000000000000000000
Но я хочу этот результат
|1 | 2 | 3 | 4-16 | 17 | 18 | 19-29 |30|
K-AEON |..| | | ...... | 2841600 | | ..... |..|
K-LFTEJM |..| | | | | 4862190 | |..|
Как я могу добиться этого? Какой метод я могу использовать?
Я хочу поставить его на sqlfiddle
, но я получил этот результат Create script error
простите за мой английский.
почти похоже на то, что я хочу. Как сделать '[1] [2] [3]' ко всей дате в месяц – YVS1102
@ YVS1102: Спасибо. Возможно, вам придется написать динамический запрос, чтобы получить [1], [2] s для данного месяца. Или вы можете хранить столбцы от [1] до [31] и управлять им в своем интерфейсе. – Lucky
Если я напишу 'static', то в течение некоторого месяца [30] и [29] – YVS1102