对不起,如果我做错了什么,这是我的第一篇文章。喜欢这个网站。
需要在一个列上创建一个包含组织列表的结果,为每件设备创建一个列,以及每个组织的列是向上还是向下。
我需要一个完整的地点列表,然后在显示它的语句向上、向下或不存在(空)时创建案例。
这似乎不正确...啊!
如果我完全错了,可以嘲笑这一点,并且赞赏建设性的批评。
表格:
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;