1

对不起,如果我做错了什么,这是我的第一篇文章。喜欢这个网站。

需要在一个列上创建一个包含组织列表的结果,为每件设备创建一个列,以及每个组织的列是向上还是向下。
我需要一个完整的地点列表,然后在显示它的语句向上、向下或不存在(空)时创建案例。

这似乎不正确...啊!

如果我完全错了,可以嘲笑这一点,并且赞赏建设性的批评。

表格:

CREATE  TABLE IF NOT EXISTS `support`.`orgs` (
  `idorgs` INT NOT NULL DEFAULT 301 ,
  `orgs` VARCHAR(10) NOT NULL ,
  `fullname` VARCHAR(45) NULL ,
   PRIMARY KEY (`idorgs`) ,
  UNIQUE INDEX `idorgs_UNIQUE` (`idorgs` ASC) ,
  UNIQUE INDEX `orgs_UNIQUE` (`orgs` ASC) )
ENGINE = InnoDB

 CREATE  TABLE IF NOT EXISTS `avsupport`.`org_comp` (
  `id_org_comp` INT NOT NULL AUTO_INCREMENT ,
  `idorgs` INT NOT NULL ,
  `idsys` INT NOT NULL ,
  `updown` TINYINT NULL ,
  `location` VARCHAR(25) NULL ,
   PRIMARY KEY (`id_org_comp`) ,
  UNIQUE INDEX `id_org_comp_UNIQUE` (`id_org_comp` ASC) ,
  INDEX `idorgs_idx` (`idorgs` ASC) ,
  INDEX `idsystems_idx` (`idsys` ASC) ,
  CONSTRAINT `idorgs`
    FOREIGN KEY (`idorgs` )
    REFERENCES `avsupport`.`orgs` (`idorgs` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `idsystems`
    FOREIGN KEY (`idsys` )
    REFERENCES `avsupport`.`system` (`idsystems` )
    ON DELETE SET NULL
    ON UPDATE NO ACTION)
ENGINE = InnoDB

CREATE  TABLE IF NOT EXISTS `support`.`system` (
  `idsystems` INT NOT NULL DEFAULT 101 ,
  `systems` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`idsystems`) ,
  UNIQUE INDEX `idsystems_UNIQUE` (`idsystems` ASC) ,
  UNIQUE INDEX `systems_UNIQUE` (`systems` ASC) )
ENGINE = InnoDB

询问:

SELECT c.orgs, 
CASE when updown=1 and idsys = 201 then 5 when updown=0 then 0 end as 'xbox',
Case when updown=1 and idsys = 202 then 10 when updown=0 then 0 end as 'TVs',
Case when updown=1 and idsys = 203 then 10  when updown=0 then 0 end as 'DVD Players',
Case when updown=1 and idsys = 205 then .25 when updown=0 then 0 end as 'CD Players'
from org_comp a, system b, orgs c where a.idsys = b.idsystems and c.idorgs = a.idorgs 
group by orgs;
4

0 回答 0