如何在多任务中选择价格大于“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),所以请原谅我的错误。非常感谢

如何在多任务中选择价格大于“1”的单列;0〃;

也许

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();