|
[ ne.rad @ 18.12.2011. 21:22 ] @
| Pozdrav svima.
Dobio sam da rešim zadatak ali sam zaglavio sa problemom i neuspevam doći do rešenja. U pitanju je neka simulacija nagradne igre. Korisnik bira 6 cifara u rasponu od 1-50. Izvlačenje se sastoji od 20 brojeva iz tog raspona.
Kako da uporedim 6 cifara sa kupona sa 20 cifara izvlačenja?
Recimo da je situacija sa tabelama ovakva:
Code (sql):
USE [master]
GO
/****** Object: Database [zadatak] Script Date: 12/18/2011 22:13:14 ******/
CREATE DATABASE [zadatak] ON PRIMARY
( NAME = N'zadatak', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\zadatak.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'zadatak_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\zadatak_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [zadatak] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
BEGIN
EXEC [zadatak].[dbo].[sp_fulltext_database] @action = 'enable'
END
GO
ALTER DATABASE [zadatak] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [zadatak] SET ANSI_NULLS OFF
GO
ALTER DATABASE [zadatak] SET ANSI_PADDING OFF
GO
ALTER DATABASE [zadatak] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [zadatak] SET ARITHABORT OFF
GO
ALTER DATABASE [zadatak] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [zadatak] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [zadatak] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [zadatak] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [zadatak] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [zadatak] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [zadatak] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [zadatak] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [zadatak] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [zadatak] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [zadatak] SET DISABLE_BROKER
GO
ALTER DATABASE [zadatak] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [zadatak] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [zadatak] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [zadatak] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [zadatak] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [zadatak] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [zadatak] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [zadatak] SET READ_WRITE
GO
ALTER DATABASE [zadatak] SET RECOVERY FULL
GO
ALTER DATABASE [zadatak] SET MULTI_USER
GO
ALTER DATABASE [zadatak] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [zadatak] SET DB_CHAINING OFF
GO
EXEC sys.sp_db_vardecimal_storage_format N'zadatak', N'ON'
GO
USE [zadatak]
GO
/****** Object: Table [dbo].[izvlacenje] Script Date: 12/18/2011 22:13:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[izvlacenje](
[izvlacenje_id] [INT] NOT NULL,
[vreme] [datetime] NULL,
[broj1] [INT] NULL,
[broj2] [INT] NULL,
[broj3] [INT] NULL,
[broj4] [INT] NULL,
[broj5] [INT] NULL,
[broj6] [INT] NULL,
[broj7] [INT] NULL,
[broj8] [INT] NULL,
[broj9] [INT] NULL,
[broj10] [INT] NULL,
[broj11] [INT] NULL,
[broj12] [INT] NULL,
[broj13] [INT] NULL,
[broj14] [INT] NULL,
[broj15] [INT] NULL,
[broj16] [INT] NULL,
[broj17] [INT] NULL,
[broj18] [INT] NULL,
[broj19] [INT] NULL,
[broj20] [INT] NULL,
CONSTRAINT [PK_izvlacenje] PRIMARY KEY CLUSTERED
(
[izvlacenje_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[kupon] Script Date: 12/18/2011 22:13:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[kupon](
[kupon_id] [INT] NOT NULL,
[izvlacenje_id] [INT] NULL,
[vreme] [datetime] NULL,
[broj1] [INT] NULL,
[broj2] [INT] NULL,
[broj3] [INT] NULL,
[broj4] [INT] NULL,
[broj5] [INT] NULL,
[broj6] [INT] NULL,
CONSTRAINT [PK_kupon] PRIMARY KEY CLUSTERED
(
[kupon_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: ForeignKey [FK_kupon_izvlacenje] Script Date: 12/18/2011 22:13:15 ******/
ALTER TABLE [dbo].[kupon] WITH CHECK ADD CONSTRAINT [FK_kupon_izvlacenje] FOREIGN KEY([izvlacenje_id])
REFERENCES [dbo].[izvlacenje] ([izvlacenje_id])
GO
ALTER TABLE [dbo].[kupon] CHECK CONSTRAINT [FK_kupon_izvlacenje]
GO
Kako da dođem do rešenja da za svaki odigrani kupon dobijem broj pogodataka?
|
[ Dusan Kondic @ 19.12.2011. 08:08 ] @
Bolje bi bilo da si podatke upisao vertikalno (jedna kolona za brojeve tako da svaki broj ide u jedan slog). Na ovaj način bi imao mnogo više slogova ali bi ti bilo mnogo lakše i brže da izvršavaš komande tipa EXISTS IN ili JOIN.
Ako ne želiš da menjaš strukturu tabela, predlažem da u front-end-u rešiš problem popunjavanjem nekog niza ili liste i kroz petlju proveriš za svaki broj "if Contains ...". Isto je moguće i u SQL-u, ali je "preskupo".
Izaberi način pa ćemo pomoći.
[ ne.rad @ 19.12.2011. 08:47 ] @
Dušane, nije nikakav problem da prepravim tabele tako da izabrane brojeve i izvučene napišem kao neki niz. Na žalost, moje znanje nije toliko da shvatam kako ću time rešiti brojanje.
Ukoliko brojeve na kuponu napišem u obliku 041121370926 (4,11,21,37,9,26) i istom tom logikom napišem brojeve u tabeli izvlacenje, kako da dođem do prebrojavanja?
[ Dusan Kondic @ 19.12.2011. 10:34 ] @
Kreiranje tabela:
Code:
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] DROP CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] DROP CONSTRAINT [FK_kupon_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] DROP CONSTRAINT [FK_KuponBroj_kupon]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] DROP CONSTRAINT [FK_KuponBroj_kupon]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KuponBroj]') AND type in (N'U'))
DROP TABLE [dbo].[KuponBroj]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] DROP CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]') AND type in (N'U'))
DROP TABLE [dbo].[IzvlacenjeBroj]
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] DROP CONSTRAINT [FK_kupon_izvlacenje]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[kupon]') AND type in (N'U'))
DROP TABLE [dbo].[kupon]
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[izvlacenje]') AND type in (N'U'))
DROP TABLE [dbo].[izvlacenje]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[izvlacenje]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[izvlacenje](
[izvlacenje_id] [int] IDENTITY(1,1) NOT NULL,
[vreme] [datetime] NULL,
CONSTRAINT [PK_izvlacenje] PRIMARY KEY CLUSTERED
(
[izvlacenje_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[kupon]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[kupon](
[kupon_id] [int] IDENTITY(1,1) NOT NULL,
[izvlacenje_id] [int] NOT NULL,
[VlasnikKupona] [nvarchar](50) NOT NULL,
[OznakaKupona] [varchar](20) NOT NULL,
CONSTRAINT [PK_kupon] PRIMARY KEY CLUSTERED
(
[kupon_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_PADDING OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[IzvlacenjeBroj](
[Id] [int] IDENTITY(1,1) NOT NULL,
[izvlacenje_id] [int] NOT NULL,
[Broj] [int] NOT NULL,
CONSTRAINT [PK_IzvlacenjeBroj] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[KuponBroj]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[KuponBroj](
[Id] [int] IDENTITY(1,1) NOT NULL,
[kupon_id] [int] NOT NULL,
[Broj] [int] NOT NULL,
CONSTRAINT [PK_KuponBroj] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
END
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] WITH CHECK ADD CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje] FOREIGN KEY([izvlacenje_id])
REFERENCES [dbo].[izvlacenje] ([izvlacenje_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_IzvlacenjeBroj_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[IzvlacenjeBroj]'))
ALTER TABLE [dbo].[IzvlacenjeBroj] CHECK CONSTRAINT [FK_IzvlacenjeBroj_izvlacenje]
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] WITH CHECK ADD CONSTRAINT [FK_kupon_izvlacenje] FOREIGN KEY([izvlacenje_id])
REFERENCES [dbo].[izvlacenje] ([izvlacenje_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_kupon_izvlacenje]') AND parent_object_id = OBJECT_ID(N'[dbo].[kupon]'))
ALTER TABLE [dbo].[kupon] CHECK CONSTRAINT [FK_kupon_izvlacenje]
GO
IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] WITH CHECK ADD CONSTRAINT [FK_KuponBroj_kupon] FOREIGN KEY([kupon_id])
REFERENCES [dbo].[kupon] ([kupon_id])
GO
IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_KuponBroj_kupon]') AND parent_object_id = OBJECT_ID(N'[dbo].[KuponBroj]'))
ALTER TABLE [dbo].[KuponBroj] CHECK CONSTRAINT [FK_KuponBroj_kupon]
GO
Tabela "Izvlacenje" predstavlja sam događaj izvlačenja i pored osnovnih podataka može joj se dodati npr. voditelj, sponzor i sl.
Tabela "IzvlačenjeBroj" predstavlja brojeve koji su izvučeni u određenom izvlačenju. Ona je referencirana na tabelu "Kupon".
Tabela "Kupon" predstavlja fizički kupon i zbog toga sam joj dodao polja VlasnikKupona i OznakaKupona (može se dodati npr. mesto prodaje kupona i sl.).
Tabela "KuponBroj" predstavlja zaokružene brojeve na kuponu.
Popunjavanje tabela (primer):
Code:
INSERT INTO Izvlacenje (Vreme) VALUES('2011-12-19')
DECLARE @IzvlacenjeId INT
SET @IzvlacenjeId = IDENT_CURRENT('Izvlacenje')
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 3)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 42)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 16)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 27)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 7)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 12)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 33)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 34)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 42)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 21)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 9)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 19)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 49)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 38)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 5)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 15)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 44)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 30)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 11)
INSERT INTO IzvlacenjeBroj(Izvlacenje_Id, Broj) VALUES(@IzvlacenjeId, 40)
INSERT INTO Kupon (izvlacenje_id, VlasnikKupona, OznakaKupona) VALUES (@IzvlacenjeId, N'Milan Jovanović', '006387532')
DECLARE @KuponId INT
SET @KuponId = IDENT_CURRENT('Kupon')
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 8)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 19)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 23)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 34)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 36)
INSERT INTO KuponBroj(Kupon_Id, Broj) VALUES(@KuponId, 49)
Dobijenje podataka o pogođenim brojevima određenog izvlačena određenog kupona:
Code:
SELECT Kupon.VlasnikKupona, Kupon.OznakaKupona, KuponBroj.Broj
FROM Kupon INNER JOIN KuponBroj ON Kupon.Kupon_Id = KuponBroj.Kupon_Id
INNER JOIN IzvlacenjeBroj ON IzvlacenjeBroj.Izvlacenje_Id = Kupon.Izvlacenje_Id AND KuponBroj.Broj = IzvlacenjeBroj.Broj
WHERE Kupon.Izvlacenje_Id = 1 AND Kupon.Kupon_Id = 1
Pozdrav
[ nadavesela @ 19.12.2011. 10:35 ] @
CREATE TABLE [dbo].[Izvlacenja](
[KoloId] [int] NOT NULL,
[IzvlacenjeId] [int] NOT NULL,
[IzvlacenjeBrojId] [smallint] NOT NULL,
[IzvlacenjeBroj] [smallint] NULL,
CONSTRAINT [PK_Izvlacenja] PRIMARY KEY CLUSTERED
(
[KoloId] ASC,
[IzvlacenjeId] ASC,
[IzvlacenjeBrojId] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
UDF koja sluzi za computed kolonu
CREATE FUNCTION [dbo].[fn_DaliBrojIzvucen](@Broj as smallint,@KoloId as int)
RETURNS tinyint
AS
BEGIN
DECLARE @izvucenbroj as tinyint
SET @izvucenbroj =(SELECT count(*) as izvucenbroj FROM Izvlacenja WHERE KoloId=@KoloId and IzvlacenjeBroj=@Broj )
RETURN @izvucenbroj
END
CREATE TABLE [dbo].[Kupon](
[KoloId] [int] NOT NULL,
[KuponId] [int] NOT NULL,
[KuponBrojId] [smallint] NOT NULL,
[Broj] [smallint] NOT NULL,
[IzvucenBroj] AS ([dbo].[fn_DaliBrojIzvucen]([Broj],[KoloId])),
CONSTRAINT [PK_Kupon] PRIMARY KEY CLUSTERED
(
[KoloId] ASC,
[KuponId] ASC,
[KuponBrojId] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Computed kolona IzvucenBroj ima vrednost 1 ako je broj izvucen, 0 ako broj nije izvucen
IzvlacenjeBrojId su redni brojevi od 1 do 20
KuponBrojId su redni brojevi od 1 do 6
Potrebno je dosredjivanje u smislu ogranicenja da ne moze jedan broj dva puta da se izvuce (ili moze?), da su za dato kolo KuponBrojId do 6, ne moze vise (ili mozda sutra ce moci i do 10).........
[ Dusan Kondic @ 19.12.2011. 14:01 ] @
Dodatni upit na moj predlog koji daje broj pogođenih brojeva po svakom kuponu:
Code:
SELECT Kupon.VlasnikKupona, Kupon.OznakaKupona, COUNT(*) AS BrojPogodaka
FROM Kupon INNER JOIN KuponBroj ON Kupon.Kupon_Id = KuponBroj.Kupon_Id
INNER JOIN IzvlacenjeBroj ON IzvlacenjeBroj.Izvlacenje_Id = Kupon.Izvlacenje_Id AND KuponBroj.Broj = IzvlacenjeBroj.Broj
WHERE Kupon.Izvlacenje_Id = 1 AND Kupon.Kupon_Id = 1
GROUP BY Kupon.VlasnikKupona, Kupon.OznakaKupona
[ ne.rad @ 19.12.2011. 14:39 ] @
Oboje ste mi ponudili sjajna rešenja iz kojih mogu mnogo da naučim. Hvala vam puno. Sjajni ste.
Sada idem da se igram sa kuponima i izvlačenjima.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|