我只是坚持看似简单的东西,但我无法弄清楚语法.我有一张工资表,与费率变化的日期和员工ID有关.每位员工多条记录.
我正在尝试获取最近日期的清单,以及仅在该日期的工资.我试过了:SELECT MAX(Date),Rate,EmpID FROM History
但这不起作用.它似乎返回了每个工资率的记录.
其他人如何有效地做到这一点?
我有一个名为 Person() 的类。它有一个 CURRENT_YEAR 类变量,旨在在该类的所有实例之间共享。
我希望单个模块中的每个测试都能获得一个新的(新的)对象,因为我将夹具的范围限定为“函数”。但是,当我在一个测试函数中更改 CURRENT_YEAR 时(使用更改 Person.CURRENT_YEAR 值的类方法发生这种情况),它会保留到下一个测试函数中。很明显,该对象不会在每次测试中被清除并重新创建。
该装置在 conftest.py 中创建,可供所有测试访问。
最后,我把它全部分解,并移动了一些东西,但仍然看到同样的东西。正如我所期望的那样,Person() 类没有被实例化多次。应该如何创建一个固定装置,以便每个 test_ 函数都有自己的类范围?
我尝试过将测试移动到单独的模块,但没有帮助。
我尝试制作第二个固定装置,它返回一个 Person() 对象。没有不同。
我已经在下面的代码中将其删除,因此希望清楚我正在尝试的内容以及为什么我感到困惑。
import os,sys
tests = os.path.dirname(__file__)
project = os.path.dirname(tests)
sys.path.insert(0,project)
import pytest
from app.person import *
def test_current_year_changes(person_fixture):
import pytest
p = person_fixture
print(f"CY is {p.CURRENT_YEAR} and age is {p.get_age()}")
p.add_years_to_age(20)
print(f"CY is {p.CURRENT_YEAR} and age is {p.get_age()}")
assert p.CURRENT_YEAR == 20
def test_current_year_changes2(person_fixture2):
import pytest
p = person_fixture2
print(f"CY is {p.CURRENT_YEAR} and age is {p.get_age()}")
p.add_years_to_age(20)
print(f"CY …Run Code Online (Sandbox Code Playgroud) 实现这一目标的最佳方法是什么?编辑:在MSSQL 2005中
表
a | b
------------
x | 1
x | 4
y | 6
y | 1
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT ? FROM Table
Run Code Online (Sandbox Code Playgroud)
所以输出是:
a | ListOfB
------------
x | 1, 4
y | 6, 1
Run Code Online (Sandbox Code Playgroud)