[英]How to join two tables from two different database and retrieving data from MSSQL using C# / ASP. how to manage connection string for that?
[英]is there a way to join some data from different tables into a query in mssql
我有兩個表正在處理。 庫存_In 表和Purchase_Return 表。
Stock in
Invoice No | Product Code | Price | Quantity | Amount | Discount | Total Amount
In-0001 | PR-0001 | 900 | 30 |22500 |0.00 |22500
In-0001 | PR-0002 | 250 | 30 |12500 |0.00 |12500
In-0002 | PR-0003 | 350 | 30 |10500 |1050 |9450
In-0002 | Pr-0004 | 400 | 5 |2000 |0.00 |2000
Purchase Return
Invoice No | Product Code | Price | Quantity | Amount | Discount |Total Amount
In-0001 | PR-0004 | 400 | 2 |800 |0.00 |800
現在,這就是我在執行查詢時想要的,首先,庫存表必須檢查采購退貨中是否有發票編號。 如果是,那么我想得到下面的結果
Invoice No | Product Code | Price | Quantity | Amount | Discount | Total Amount
In-0001 | PR-0001 | 900 | 30 |22500 |0.00 |22500
In-0001 | PR-0002 | 250 | 30 |12500 |0.00 |12500
In-0002 | PR-0003 | 350 | 30 |10500 |1050 |9450
In-0002 | Pr-0004 | 400 | 2 |800 |0.00 |800
如果沒有,那么我想得到下面的結果
Invoice No | Product Code | Price | Quantity | Amount | Discount | Total Amount
In-0001 | PR-0001 | 900 | 30 |22500 |0.00 |22500
In-0001 | PR-0002 | 250 | 30 |12500 |0.00 |12500
In-0002 | PR-0003 | 350 | 30 |10500 |1050 |9450
In-0002 | Pr-0004 | 400 | 5 |2000 |0.00 |2000
所以我需要寫什么查詢來實現這一點,已經嘗試了很多查詢,但仍然沒有得到它所寫的很少是這個
if exists (select Stock_In.Invoice_No from Stock_In,Purchase_Return where Stock_In.Invoice_No = Purchase_Return.Invoice_No)
begin
SELECT distinct Stock_In.Invoice_No, stock_in.Product_Code, Stock_In.Price,
Stock_In.Quantity, Purchase_Return.Amount, Purchase_Return.Discount_Amount, Purchase_Return.Total_Amount
FROM Stock_In full outer join Purchase_Return on Purchase_Return.Invoice_No = Stock_in.Invoice_No
End
else
begin
SELECT distinct Stock_In.Invoice_No, stock_in.Product_Code, Stock_In.Price,
Stock_In.Quantity, Purchase_Return.Amount, Purchase_Return.Discount_Amount, Purchase_Return.Total_Amount
FROM Stock_In full outer join Purchase_Return on Purchase_Return.Invoice_No = Stock_in.Invoice_No
end
這是上面查詢的結果
Invoice No | Product Code | Price | Quantity | Amount | Discount | Total_Amount
In-0001 PR-0001 900 25 Null Null NUll
IN-0001 PR-0002 250 50 Null Null NUll
IN-0002 PR-0003 350 30 2000 0.00 800
IN-0002 PR-0004 400 2 2000 0.00 800
誰能告訴我上面的查詢缺少什么
你不只是在LEFT JOIn
和ISNULL
/ COALESCE
嗎?
SELECT InvoiceNo,
ProductCode,
Price,
ISNULL(PR.Quantity,SI.Quantity) AS Quanity,
ISNULL(PR.Amount,SI.mount) AS Amount,
ISNULL(PR.Discount,SI.Discount) AS Discount,
ISNULL(PR.TotalAmount,SI.TotalAmount) AS TotalAmount
FROM dbo.StockIn SI
LEFT JOIN dbo.PurchaseReturn PR ON SI.ProductCode = PR.ProductCode;
您可以通過 SQL Joins 獲得您想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.