none
Access 巢狀查詢 in用法問題 RRS feed

  • 問題

  • 你好

    以下是我的語法

    SELECT SUM(Sales)
    FROM Store_Information
    WHERE Store_Name IN
    (SELECT Store_Name FROM Geography
    WHERE Region_Name = 'West');

    為什麼收尋結果都是空白呢?

    我哪打錯了嗎?

    收尋結果

    這是Store_Information資料表

    這是Geography資料表

    2019年10月18日 下午 04:52

所有回覆

  • 處理問題時,盡量把問題範圍縮小,比較容易找出問題癥結點

    依據您的描述,您試試

    SELECT Store_Name FROM Geography
    WHERE Region_Name = 'West'

    是否有資料?

    如果沒有,那麼問題就在Geography這個資料表,其他先排除

    再來,Access用雙引號來『"』來處理文字型態,而SQL則是用單引號『'』
    您的標題提到Access,但語法卻是單引號
    所以要先釐清的是,您的資料庫到底是Microsoft Access還是Microsoft SQL Server ?

    兩者有些不同

    ---

    最後,假設您用的資料庫是『SQL』

    那麼,您用的型別是什麼?char? varchar?

    如果您的型別是char,假設長度是8,也就是char(8)
    當您資料填入'West'四個char,實際上他填入的是'West    ',也就是四個字+四個『空白』
    如果是固定的長度,才用char,否則,建議您使用varchar這種不定長度的型態
    或者,您下查詢語法時,要處理多出來的空白

    小喵之前的一篇文章,提供您參考

    文字型態的資料要用什麼樣的格式儲存?char, varchar, nchar, nvarchar??


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    2019年10月21日 上午 01:45
  • 我是用Access 2016內建的建構資料表,找不到Varchar資料型態,應該說不知道怎麼設定,裡面只有簡短文字跟長文字,我是用簡短文字8個字元設定,可以如果要使用varchar一定要用Sql指令建立嗎?

    我語法也改了刪除空白指令,但還是不行~~~

    SELECT SUM(Sales)
    FROM Store_Information
    WHERE TRIM(Store_Name) IN
    (SELECT TRIM(Store_Name) FROM Geography
    WHERE TRIM(Region_Name) = "West");
    

    還是資料表還要設定什麼嗎?

    topcat_小喵 指導我一下 謝謝!!

    2019年10月23日 下午 05:45
  • 原來您用的是Access 2016的版本

    小喵以您的案例,用Access來測試一下,並沒有發現跟您一樣的問題

    使用您#1的語法

    SELECT Sum(Sales) AS Expr1
    FROM Store_Information
    WHERE (((Store_Information.[Store_Name]) In (SELECT Store_Name FROM Geography
    WHERE Region_Name = 'West')));
    

    結果正常

    您比對一下資料表的設計看看有什麼不一樣的

    ^.^a


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    2019年10月24日 上午 01:58
  • topcat_小喵 我還是沒辦法也,我也對照了也是跟你一樣

    我還是把我的檔案給你看一下,左邊查詢7,可以方便幫我看一下嗎?

    謝謝你

    檔案位置: https://mega.nz/#F!Ox9EWIBY!x7PxFbWiIszIoNGDz3moQg

    2019年11月5日 下午 05:22
  • 問題出在您Geography的資料

    從系統中把這個資料表的資料複製,貼到記事本,得到這樣的內容


    代表後面三筆,文字前面都多了一個Tab

    所以比對下就比對不到囉

    ^.^a


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...



    2019年11月6日 上午 05:48
  • 不知道最後結果如何?
    是否如小喵所說,是Geography資料的問題

    ^.^a


    topcat(姍舞之間的極度凝聚)
    http://www.dotblogs.com.tw/topcat
    世界上有兩樣東西分享給別人後,不但不會變少,還會變更多:
    一個是快樂,另一個是知識~ 分享...是知識累積的開始...

    2019年11月8日 上午 01:35