[英]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.