簡體   English   中英

SQL靈活查詢結果

[英]SQL flexible query results

我對SQL方面還很陌生。 我一直在嘗試向您介紹條件,但是讓它確定查詢是否等於1個結果或多個結果。 我所擁有的如下。

我可能做錯了所有,但以為我會問。

 SELECT employee_name
      , transaction_id
      , department
      , transaction_date
      , transaction_day
   FROM employee_transactions
  WHERE transaction_date 
BETWEEN '2018-08-20 07:14:35.000' 
    AND '2019-02-05 08:29:56.000'
    AND CASE WHEN '$variable' = 'All' 
             THEN inc_day IN (
                 SELECT DISTINCT transaction_day 
                   FROM employee_transactions
           ) ELSE inc_day in ('$variable')
             END

我的意思是在柱交易日中,有星期一,星期二,星期三等條目,但是都不在那里。 因此,在表單上,​​如果他們選擇了全天的所有數據,而不只是一整天,但是如果他們選擇了周一的數據,則只顯示monda

您應該像下面這樣編寫查詢。

SELECT employee_name, 
        transaction_id, 
        department, 
        transaction_date, 
        transaction_day

  FROM employee_transactions
  WHERE transaction_date 
  BETWEEN '2018-08-20 07:14:35.000' 
  AND '2019-02-05 08:29:56.000'
  AND ( '$variable' = 'All' OR inc_day = '$variable')

以上查詢將在$ variable ='ALL'時返回所有記錄,否則僅匹配記錄。

假設在查詢執行之前“ $ variable”將被替換。

你可以這樣嘗試

if($variable == "All")
{ 
   $query = "SELECT employee_name, transaction_id , department , transaction_date , 
   transaction_day
   WHERE transaction_date BETWEEN '2018-08-20 07:14:35.000' AND '2019-02-05 08:29:56.000'
   GROUP BY transaction_date"
}
else
{
   $query = "SELECT employee_name, transaction_id , department , transaction_date , transaction_day
   FROM employee_transactions
   WHERE transaction_date BETWEEN '2018-08-20 07:14:35.000'  AND '2019-02-05 08:29:56.000'
   AND inc_day in ($variable)"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM