0

次の列を持つ出荷と支払いという2つのテーブルがあります

出荷

1.Executivename
2.shipername
3.shiperaddress
4.acountno
5.invoiceno 
6.shipdate  
etc.

支払い

1.InvoiceNo
2.accountno
3.Date
4.Discount
5.ReceivedAmount 6.MoneyReceiptNo

「支払い」テーブルのフィールドを使用して、エグゼクティブ名でレポートを生成したいと思います。次のストアド プロシージャでそれを実行しようとしました-

CREATE PROCEDURE [dbo].[rptexecutivepayment] @executivename varchar(20) AS 
BEGIN 
    select Executivename,[shipment].accountno,[date],discount,receivedamount,moneyreceiptno
    from shipment 
    full join payment on shipment.accountno=payment.accountno and shipment.invoiceno=payment.invoiceno 
    where Executivename=@executivename order by Executivename 
END
GO

ただし、レポートはデータの重複を生成します。今何ができますか?お願い、誰か助けて。

4

1 に答える 1

0

悪いスキーマ...

** 出荷テーブルには、出荷番号、請求書、その他の出荷の詳細が含まれている必要が あり
ます 。


**請求書テーブルには、
InvoiceNo
AccountNo
otherInvoiceDetail が必要です。

**AccountMaster テーブルには
AccountNo
AccountDetails が必要です...

これは正規化されたスキーマであり、レポート作成の妨げにはなりません。

于 2012-05-10T22:53:01.557 に答える