我有一个JobPosts表,我想选择平均工资大于给定值的所有记录。我可以通过使用原始查询来做到这一点,但我觉得我错过了一些东西。我的代码:
create proc dbo.MyProc( @SequenceNo int, @Timestamp datetime ) as
begin
select * from MyTable where
case when @SequenceNo is not null THEN SequenceNo > @SequenceNo
ELSE Timestamp > @Timestamp
end
end
我可以不使用原始查询或以其他更好的方式执行此操作吗?
答案 0 :(得分:0)
试试这个:
$salary = 100000;
echo $query = JobPost::whereRaw($salary.' < (SELECT AVG(salary_min + salary_max ) FROM job_posts)')->get();
job_posts
替换为您的表名
答案 1 :(得分:0)
不确定这项工作是否有一段时间没有触及Laravel,但是内存不足你应该能够做到这样的事情:
$salary = 100000;
$query = JobPost::selectRaw('((salary_min + salary_max) / 2) as average')->where('average', '>', $salary)->getQuery();
答案 2 :(得分:0)
简单的兄弟
试试
控制器代码
$salary = 100000; $query = JobPost::all();
return view('--your blade file name--', compact('query'))
并编写此代码的刀片文件。会得到$ avg“display:block”或“display:none”。然后将$ avg样式应用于jobpost。所以
如果“display:none”表示jobpost将隐藏其他“display:block”表示将显示jobpost
@foreach($query as $querys )
<?php
$value_salary_min = $querys['salary_min'];
$value_salary_max = $querys['salary_max'];
$avg = ($value_salary_min + $value_salary_max )/2
$avg = $avg >= $salary? "display:block" : "display:none";
?>
@endforeach
答案 3 :(得分:0)
兄弟,我有另一个解决方案
在表格中为平均创建一个新列,当您插入数据时,平均薪水计算会将该值存储在平均列中。
现在很容易比较您的平均值并获得搜索结果。
喜欢
bool bIsConnected = axCZKEM1.Connect_Com(1235,201, 115200);
if (bIsConnected == true)
{
MessageBox.Show("Device Connected Successfully");
}
else
{
MessageBox.Show("Device Not Connect");
}
Avg 您的新列名称和 $ salary 是您的变量
试试这个逻辑兄弟