2017-07-25 128 views
0
SELECT   
    dbo.PaymentMaster.Code, 
    dbo.PaymentMaster.OrderNo, 
    dbo.PaymentMaster.CustIssueNo, 
    dbo.PaymentMaster.Amount, 
    dbo.CustomerMaster.CustName, 
    dbo.OrderRequestMaster.ORequestQty, 
    InvoiceMaster.SGST, 
    InvoiceMaster.CGST, 
    InvoiceMaster.SGST, 
    InvoiceMaster.SubTotal, 
    InvoiceMaster.TotalAmount 
FROM 
    dbo.CustomerIssueMaster, 
    dbo.PaymentMaster, 
    dbo.CustomerMaster, 
    dbo.OrderMaster, 
    dbo.OrderRequestMaster, 
    InvoiceMaster 
WHERE (dbo.PaymentMaster.CustIssueNo = dbo.CustomerIssueMaster.CustIssueNo 
    OR OrderMaster.OrderNo = PaymentMaster.OrderNo) 
    AND OrderRequestMaster.ORequestNo = OrderMaster.ORequestNo 

我想创建所有条件应该匹配的发票,但是当有一行应该作为结果给出时,我没有得到任何行。如何创建发票

我从支付大师那得到了这个结果。并且我想在发票主文件夹中包含发票主文件夹的客户信息,订单请求信息,订单信息和付款信息,例如Code, InvoiceNo, CustNo, InvoiceDate, SubTotal, CGST, SGST, TotalAmount

Code PaymentNo  OrderNo  CustIssueNo PaymentMode PaymentStatus Amount PaymentDate InvoiceNo InvoiceDate 
4  KCS[P][00004] NULL   KCS[CI][00001] Cash  Paid   500 14:28.3  NULL  NULL 
5  KCS[P][00005] KCS[O][00001] NULL   Cash  Paid   2000 22:33.9  NULL  NULL 
6  KCS[P][00006] KCS[O][00002] NULL   Cash  Paid   2000 40:38.1  NULL  NULL 

我得到这个结果

+3

**备注**:始终使用*显式连接*语法,而不是旧的基于逗号的连接。 – GurV

+1

这是非ansi兼容的语法,并在其上面进行交叉连接。 – Alex

+0

请参阅我的编辑。除非你自己做更多的工作,否则我不会再打扰 –

回答

0

如果没有,我们将是非常很难帮助任何数据。你说一行应该符合条件,但是很难看到只有一条记录会被返回,除非你的表只有一条记录!

我从你的查询中注意到你想要CustName,而不在你的WHERE子句中包含CustomerMaster - 这会导致麻烦!

请在查询窗口中使用以下代码并添加任何重要的缺失字段。然后创建一些INSERT行来填充。重新发布这使我们可以帮你做你想要的查询:

declare @CustomerIssueMaster table 
(
CustIssueNo int 
) 
declare @PaymentMaster table 
(
Code int, 
PaymentNo varchar(50), 
OrderNo varchar(50), 
CustIssueNo varchar(50), 
PaymentMode varchar(50), 
PaymentStatus varchar(50), 
Amount decimal (18,2), 
PaymentDate datetime, 
InvoiceNo int, 
InvoiceDate datetime 
) 
declare @CustomerMaster table 
(
CustName varchar(50) 
) 
declare @OrderRequestMaster table 
(
ORequestQty int, 
ORequestNo int 
) 
declare @InvoiceMaster table 
(
SGST decimal(18,2), 
CGST decimal(18,2), 
SubTotal decimal(18,2), 
TotalAmount decimal(18,2) 
) 
declare @OrderMaster table 
(
OrderNo int 
) 



INSERT INTO @PaymentMaster VALUES(4, 'KCS[P][00004]', NULL, 'KCS[CI][00001]','Cash','Paid',500,'2014-03-28', NULL, NULL) 
INSERT INTO @PaymentMaster VALUES(5, 'KCS[P][00005]', 'KCS[O][00001]', NULL, 'Cash','Paid',2000,'2014-03-28', NULL, NULL) 
INSERT INTO @PaymentMaster VALUES(6, 'KCS[P][00006]', 'KCS[O][00002]', NULL, 'Cash','Paid',2000,'2014-03-28', NULL, NULL) 

SELECT * FROM @PaymentMaster 

编辑

请注意我已经修改@PaymentMaster的结构和给定的三个插入模仿你的数据显示从SELECT * FROM PaymentMaster,有一个例外:我不明白你的PaymentDate应该是什么格式。前两个看起来像时间,但第三个不能。我只是停留在一个虚拟的日期。

现在你可以请同样的其他表格吗?我已经向您展示了您需要使用的格式。

+0

没有使用custname bcz paymentmaster中没有custno。 – Nikita

+0

你的意思是custissueno? –

+0

请问你能照我的要求吗?否则,我不明白如何帮助你。 –