sql – 如何在同一个表中使用不同的条件两次检索同一列?
发布时间:2020-12-12 16:26:16 所属栏目:MsSql教程 来源:网络整理
导读:这是我的表: Anganbadi_ID Food Month------------------------------------------- 1165 ??? 11165 ??? 21165 ??? 41168 ??? 42032 ???? 42218 ???? 42219 ??? 42358 ???? 42546 ??? 10 有4列Anganbadi_ID,Food,Month,Year,我想根据两个不同的月份值比较Foo
这是我的表:
Anganbadi_ID Food Month ------------------------------------------- 1165 ??? 1 1165 ??? 2 1165 ??? 4 1168 ??? 4 2032 ???? 4 2218 ???? 4 2219 ??? 4 2358 ???? 4 2546 ??? 10 有4列Anganbadi_ID,Food,Month,Year,我想根据两个不同的月份值比较Food列两次. 例如如果我选择Month = 4作为第一个Food(Food-1)列,Month = 10作为第二个Food(Food-2)列,那么它应该如下:: Anganbadi_ID Food-1 Food-2 ------------------------------------------ 1165 ??? NULL 1168 ??? NULL 2032 ???? NULL 2218 ???? NULL 2219 ??? NULL 2358 ???? NULL 2546 NULL ??? 当我尝试这段代码时 SELECT Anganbadi_ID,(SELECT Food FROM Anganbadi AS Anganbadi_2 WHERE (Anganbadi_1.Anganbadi_ID = Anganbadi_ID) AND (Anganbadi_1.Month = 10) ) AS 'Food(2)' FROM Anganbadi AS Anganbadi_1 WHERE (Month = 4) 它显示以下结果:: Anganbadi_ID Food-1 Food-2 -------------------------------------------- 1165 ??? NULL 1168 ??? NULL 2032 ???? NULL 2218 ???? NULL 2219 ??? NULL 2358 ???? NULL 请尽快帮助我…. 解决方法SELECT DISTINCT Anganbadi_ID,(SELECT Food FROM Anganbadi WHERE (Anganbadi_ID = A.Anganbadi_ID) AND (Month = 4)) AS Food1,(SELECT Food FROM Anganbadi WHERE (Anganbadi_ID = A.Anganbadi_ID) AND (Month = 10)) AS Food2 FROM Anganbadi AS A WHERE A.Month = 10 OR A.Month = 4 SQL Fiddle (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |