2014-03-02 37 views
0

我需要一些幫助來查找某些表中的數據。我想用SQL查詢來找到它,但是我在做這件事時遇到了一些困難。對錶中的特定數據使用查詢

customers (customerID: integer, fName: string, lName: string) 
items (itemID: integer, description: string, price: float) 
orders (orderID: integer, itemID: integer, aID: integer, customerID: integer, date: date) 
addresses (aID: integer, housenum: integer, streetName: string, town:string, state: string, zip:integer) 
  1. 對於每個郵政編碼,列出郵編和運到郵政編碼的物品的總價值。

這是我試過的,但是我不確定它是否正確,因爲許多SUM(價格)是相同的?

SELECT DISTINCT(zip), SUM(price) 
FROM addresses, items 
GROUP BY zip 
  1. 清單鎮,名,誰已售出的項目,以同一個鎮的另一位客戶的任何客戶的姓氏。

    SELECT fName, lName, town, aID 
    FROM customers 
    JOIN addresses 
    ON addresses.town=customers.lName 
    FROM addresses 
    ON addresses.aID=customers.fName 
    

最後3.返回的錢每一位客戶的2013年3月的平均花費(請注意,答案是單號)。

非常感謝

+0

「需要注意的是,答案是單個數字」 聽起來像功課。 –

+0

您正在使用哪些DBMS? Postgres的?甲骨文?順便說一句:'distinct'是**不是**的功能。 DISTINCT(zip)'沒有任何意義,*特別是*當你也在'zip'列上分組時 –

+0

我試圖用DISTINCT(zip)來只顯示一次郵政編碼嗎? – user3321452

回答

0

不知道這是一門功課,但這裏的東西讓你開始:

  1. 對於每個郵政編碼,列出郵編和物品運到總價值郵編。

每個項目都屬於一個訂單,每個訂單都有一個地址。

SQL:

SELECT a.zip, sum(i.prices) 
FROM items i 
JOIN orders o using(orderID) 
JOIN addresses a using(aID) 
GROUP by a.zip 
  1. 清單鎮,名,誰已售出的項目,以同一個鎮的另一位客戶的任何客戶的姓氏。

每個客戶都有訂單,每個訂單都有一個地址。

SQL:

SELECT DISTINCT a.town, 
      c.fname, 
      c.lname 
FROM customer c 
    JOIN orders o 
    ON c.customerid = o.customerid 
    JOIN addresses a 
    ON o.aid = a.aid 
WHERE town IN (
      SELECT town 
      FROM orders o 
        JOIN addresses a 
        ON o.aid = a.aid 
      GROUP BY town 
      HAVING COUNT(DISTINCT c.customerid) > 1) 
+0

我無法得到最後一個工作,它沒有給出任何錯誤,但沒有得到任何結果,儘管有結果要放棄。我試着亂搞,但沒有得到它的工作,生病繼續嘗試。謝謝你的幫助! – user3321452

相關問題