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