如何在多任务中选择价格大于“1”的单列;0〃;
本文关键字:单列 大于 多任务 选择 | 更新日期: 2023-09-27 17:59:21
我有5张表,如下所示:
城市_TBL
CityCode
ABB
DET
FRI
ROM
酒店_TBL
HotelCode CityCode (FK) Price
1 ABB 0
2 ABB 10
3 FRI 0
4 DET 0
5 ROM 19
酒店房间_TBL
RoomID HotelCode (FK) RoomName Price
1 1 Superior 3
2 2 DeLuxe 6
3 1 Panoramic 0
4 3 Suite 0
5 4 Presidential 1
Transfer_TBL
TransferCode CityCode (FK) Price
1 ABB 3
2 ABB 6
3 DET 0
4 FRI 0
巡航_TBL
CruiseCode CityCode (FK) Price
1 ABB 3
2 DET 0
3 FRI 0
4 ROM 0
我想写下一个查询(linq),它将返回一个没有重复记录的CityCode列表(CityCode),其中至少有一个字段/列"价格"(在Hotel_TBL、Transfer_TBL、Cruise_TBL和HotelRoom_TBL表中)大于"0"的记录,结果如下所示:
Result_TBL
ABB
ROM
如何使用linq-to-sql?
非常感谢您的关注。
祝你玩得愉快。
干杯
对不起,我修改了这个问题,因为我忘了写下另一张表(HotelRoom_TBL),所以请原谅我的错误。非常感谢
也许
var data =
ctx.HotelTbl.Where(row => row.Price > 0).Select(row => row.CityCode)
.Union(
ctx.TransferTbl.Where(row => row.Price > 0).Select(row => row.CityCode)
).Union(
ctx.ResultTbl.Where(row => row.Price > 0).Select(row => row.CityCode)
);
就我个人而言,我很想使用ExecuteQuery:
var data = ctx.ExecuteQuery<string>(@"
select CityCode from Hotel_Tbl where Price > 0
union select CityCode from Transfer_Tbl where Price > 0
union select CityCode from Result_Tbl where Price > 0").ToList();