Query

需要幫助以使用 SQL 查詢比較定價

  • October 31, 2019

提前感謝您的幫助。

我有 2 組數據顯示巴士旅程以及來自 2 個不同系統的相關價格,我需要比較這些數據。

1-

品牌-產地

-目的地-

價格

表2-

品牌-產地**-**

目的地-

價格

所以我需要做的是匹配以下所有欄位並從table2返回價格,我使用以下方法完成了:

SELECT Table1.Brand ,
      Table1.Origin,  
      Table1.Destination,  
      Table1.Price,  
      Table2.Price 
FROM Table1  
 LEFT JOIN Table2  
        ON Table1.Brand = Table2.Brand  
       AND Table1.Origin = Table2.Origin  
       AND Table1.Destination = Table2.Destination  

結果表:

Brand  |  Origin  |  Destination  |  Price  |  Table2 Price  |

所以到目前為止我有正確的數據但是我需要以下我可以在一些幫助下真正做到的事情:

  1. 比較 Table1.Price 和 Table2.Price 並在上面的 ResultTable 中顯示差異
  2. 過濾掉所有相同的價格,所以我們只剩下不同的價格
  3. 一個新查詢,我們在其中比較品牌、原產地和目的地,如果表 2 中缺少任何內容,我們將顯示這些

對不起,冗長的解釋,但只是想我會盡量讓它盡可能明確。

免責聲明,您的表中的所有內容都可以為空,因此IS NULL謂詞可能會產生誤報。

您的查詢有很長的路要走,您只需要添加某些謂詞:

1 和 2。

SELECT Table1.Brand ,
      Table1.Origin,  
      Table1.Destination,  
      Table1.Price,  
      Table2.Price,
      Table1.Price - Table2.Price as diff 
FROM Table1  
 LEFT JOIN Table2  
        ON Table1.Brand = Table2.Brand  
       AND Table1.Origin = Table2.Origin  
       AND Table1.Destination = Table2.Destination
WHERE Table1.Price - Table2.Price <> 0;   

3 .

SELECT Table1.Brand ,
      Table1.Origin,  
      Table1.Destination,  
      Table1.Price,  
      Table2.Price,
      Table1.Price - Table2.Price as diff 
FROM Table1  
 LEFT JOIN Table2  
        ON Table1.Brand = Table2.Brand  
       AND Table1.Origin = Table2.Origin  
       AND Table1.Destination = Table2.Destination
WHERE Table2.Price IS NULL;   

引用自:https://dba.stackexchange.com/questions/252283