汇总查询后转置行和列

时间:2018-10-29 12:40:21

标签: sql ms-access

我有一个数据库,该数据库以以下格式列出了54个问题的调查对象...

Respondent ID  Q_1   Q_2   Q_3 ... Q_54
1               5     3   [null]    2
...
3000          [null]  3     3       5

...并且我有一个汇总查询来获取每个问题的受访者人数...

Count_Q_1  Count_Q_2  Count_Q_3 ... Count_Q_54
1547       602        2999          1874

...并且我正在寻找一种方法来对上述查询中的列进行转置以获得以下结果...

   Question  Count_Respondents
   Q_1        1547
   Q_2         602
   Q_3        2999 
   ...        ...
   Q_54       1874

...如果没有54个UNION查询(或累积到一个主UNION查询的多个UNION查询块),我有什么办法做到这一点?

1 个答案:

答案 0 :(得分:1)

不,没有。您的结果应该首先进行规范化,Access不支持public function productsCat(Request $request){ $cat_id = $request->cat_id; $price = explode("-",$request->price); $start = $price[0]; $end = $price[1]; if($cat_id!="" && $price!="0"){ $data = DB::table('products') ->join('cats','cats.id','products.cat_id') ->where('products.cat_id',$cat_id) ->where('products.pro_price', ">=", $start) ->where('products.pro_price', "<=", $end) ->get(); } else if($price!=""){ $data = DB::table('products') ->join('cats','cats.id','products.cat_id') ->where('products.pro_price', ">=", $start) ->where('products.pro_price', "<=", $end) ->get(); } else if($cat_id!=""){ $data = DB::table('products') ->join('cats','cats.id','products.cat_id') ->where('products.cat_id',$cat_id) ->get(); } else{ return "<h1 align='center'>Please select at least one filter from drop down list</h1>"; } if(count($data)=="0"){ echo "<h1 align='center'>no products found under this Category</h1>"; }else{ return view('front.productsPage',[ 'data' => $data, 'catByUser' => $data[0]->cat_name ]); } 或类似的东西。

您可以通过使用VBA取消许多联合查询的数据,也可以将数据移至Excel / SQL Server /另一个程序并在那里取消结果。