rss
twitter
facebook

Home

List Tables used by one eSpace - Query by eSpace Name

SELECT ENESPACE.NAME, ENENTITY.NAME, ENENTITY.PHYSICAL_TABLE_NAME
FROM dbo.ossys_Espace ENESPACE INNER JOIN dbo.ossys_Entity ENENTITY
ON ENENTITY.ESPACE_ID = ENESPACE.ID
WHERE ENESPACE.NAME = 'espacenameHERE'
Read More

Outsystems - Project

Was this schedule developed faster and quicker One PlatformThis program was developed in a fairly rapid implementation of system integration but not just for the purpose of integration.This video demonstrates a WorkFlow ah-doc which shows a procedural flow of a municipality. Covers four types of documents Informaçõess, Pareceress,  Despachoss and Ofícioss which the routing is done via email with attachment document.
Ofícioss are only made to external entities. When shipped generate a random number that follows with the Office by email. The entity receives the email with a URL and the random code embedded where answered.




Read More

String Reversed

   
# Colocar uma string com 13chars
# e Meter ao contrario de forma inversa



    .data
        .align 1
        String: .space 14 #*change
        msg1: .asciiz "Pls give a character: "
        msg2: .asciiz "\n"
        msg3: .asciiz "String is: "
        msg4: .asciiz "\nString Reversed is: "
    .text
    .globl main
main:

addi $s0,$zero,13 #*change
addi $t0,$zero,0

in:
    la $a0,msg2
    li $v0,4
    syscall

    li $v0,4
    la $a0,msg1
    syscall
    li $v0,12
    syscall

    add $t1,$v0,$zero
    sb $t1,String($t0)
    addi $t0,$t0,1
    slt $t1,$s0,$t0
    beq $t1,$zero,in

    sb $zero,String($t0) #ending zero

    la $a0,msg2
    li $v0,4
    syscall
    la $a0,msg2
    li $v0,4
    syscall
    la $a0,msg3
    li $v0,4
    syscall

    la $a0,String
    li $v0,4
    syscall

    addi $a1,$zero,14 #pass length-*change
    jal stringreverse #reverse

    la $a0,msg2
    li $v0,4
    syscall

    la $a0,msg4
    li $v0,4
    syscall

    la $a0,String
    li $v0,4
    syscall

    li $v0,10
    syscall


stringreverse:

            add $t0,$a0,$zero        #beginning address

            add $t1,$zero,$zero        #i=0
            addi $t2,$a1,-1            #j=length-1

loop:

            add $t3,$t0,$t1
            lb $t4,0($t3)            #lb String[i]

            add $t5,$t0,$t2
            lb $t6,0($t5)            #lb String[j]

            sb $t4,0($t5)            #String[j]=String[i]
            sb $t6,0($t3)            #String[i]=String[j]

            addi $t1,$t1,1            #i++
            addi $t2,$t2,-1            #j--

#if i>=j break - $t1<$t2
slt $t6,$t2,$t1
beqz $t6,loop

jr $ra

#i-0;j=length-1;
# do {
# x = str[i]
# str[i]=str[j]
# str[j] = x
# i++;j--;
# } while(!(j<i))
Read More

branch to target

        b    target        #  unconditional branch to program label target
        beq    $t0,$t1,target    #  branch to target if  $t0 = $t1
        blt    $t0,$t1,target    #  branch to target if  $t0 < $t1
        ble    $t0,$t1,target    #  branch to target if  $t0 <= $t1
        bgt    $t0,$t1,target    #  branch to target if  $t0 > $t1
        bge    $t0,$t1,target    #  branch to target if  $t0 >= $t1
        bne    $t0,$t1,target    #  branch to target if  $t0 <> $t1
Read More

calculation is recursive.

# This file can be used to write all the programs in PCSpim
# NAME:
# TA's NAME:
# DESCRIPTION:

## Example program in revised section 9.7 of Goodman and
## Miller's "A Programmer's View of Computer Architecture"
##

## This MAL program computes the greatest common divisor of
## two positive integers. The function that does the main
## calculation is recursive.

        .data
# data items, i.e. all initialized and
# non-initialized items go in here

err_msg:     .asciiz "\nbad integer entered\n"

        .text
        .globl main

main:       

# your main subroutine code goes in here

        jal intro
        jal getint
        beqz $v0, input_err
        move $s0, $v1
        jal getint
        beqz $v0, input_err
        move $a1, $v1
        move $a0, $s0
        jal gcd
        move $a0, $v0
        jal print_result
        done

input_err:    la $8, err_msg
        puts ($8)

# the last line of main
        done

# end of main
# any subroutines may be inserted here:...

## Intro
## A simple procedure to print a little introduction message.
## There are no parameters.

        .data
msg1:    .asciiz "This program computes the greatest common divisor of \n"
msg2:    .asciiz "two user entered integers.\n\n"

        .text
intro:        la $8, msg1
        puts ($8)
        la $8, msg2
        puts ($8)
        jr $ra

## getint
## A function to get a single positive integer from the user.
## return values:
##  $v0 -- flag indicating success of the function
##         value is 1 if integer entered is ok.
##         value is 0 if not ok.
##  $v1 -- the integer entered
##
## register assignments:
##  $8 -- user entered character
##  $9 -- digit of integer
##  $10 -- newline character (the constant)
##  $11 -- the integer being entered
##  $12 -- the constant 10, the base
##  $13 -- temp
##  $14 -- the constant 9

        .data
prompt:        .asciiz "Enter positive integer: "

        .text
getint:        li $10, 10     # $10 <- newline character
        li $12, 10    # constant 10
        li $11, 0
        li $14, 9
        la $13, prompt
        puts ($13)

getchar:    getc $8
        beq $8, $10, getint_rtn
        sub $9, $8, 48
        bgt $9, $14, int_err
        bltz $9, int_err
        mul $11, $11, $12
        add $11, $11, $9
        b getchar

getint_rtn:    li $v0, 1
        move $v1, $11
        jr $ra

int_err:    li $v0, 0
        jr $ra

##  gcd
##  A recursive function to calculate the greatest common divisor.
##
##    gcd(m, n) = m            if n = 0
##              = gcd (n, m mod n)     if n > 0
##  return values:
##    $v0 -- the greatest common divisor
##  parameters:
##    $a0 -- m
##    $a1 -- n
##

        .data
gcd_err_msg:    .asciiz "error in calculating gcd -- quitting.\n"

        .text

gcd:        sub $sp, $sp, 12    # allocate activation record
        sw $ra, 12($sp)        # save return address
        bgtz $a1, n_greater
        bnez $a1, gcd_err
        move $v0, $a0        # return m
        b gcd_rtn

n_greater:    sw $a0, 8($sp)        # save current parameters
        sw $a1, 4($sp)
        rem $8, $a0, $a1
        move $a0, $a1        # set up parameters for call
        move $a1, $8
        jal gcd            # recursive call to gcd
        lw $a0, 8($sp)        # restore current parameters
        lw $a1, 4($sp)
            # return value already in $v0

gcd_rtn:    lw $ra, 12($sp)        # restore return address
        add $sp, $sp, 12    # remove activation record
        jr $ra            # return

gcd_err:    la $8, gcd_err_msg
        puts ($8)
        done

## print_result
##  Procedure to print out the base ten integer passed to the procedure
##  as a parameter
##
## return values:
##  none
## parameters:
##  $a0 -- the integer to be printed out
##
## register assignments:
##  $8 -- address of output string
##  $9 -- stack pointer before pushing characters onto stack
##  $10 -- copy of integer to be printed
##  $11 -- ASCII character code of digit to be printed as pushed
##  $12 -- ASCII character code of digit to be printed as popped
##  $13 -- newline character for nice output

        .data
result_msg:    .asciiz "The greatest common divisor is "

        .text
print_result:    move $10, $a0
        la $8, result_msg
        puts ($8)
        move $9, $sp
        bnez $10, push_loop
        li $11, 0        # special case for printing 0
        sw $11, 0($sp)
        sub $sp, $sp, 4
        b print_loop

push_loop:    rem $11, $10, 10    # push characters onto stack
        add $11, $11, 48
        sw $11, 0($sp)
        sub $sp, $sp, 4
        div $10, $10, 10
        bnez $10, push_loop

print_loop:    add $sp, $sp, 4        # pop characters off stack
                    # and print

        lw $12, 0($sp)
        putc $12
        bne $9, $sp, print_loop
       
        li $13, 10         # print newline
        putc $13
        jr $ra

# END OF PROGRAM (leave this line here)
Read More

This program does simple vector addition

# NAME:
# TA's NAME:
# DESCRIPTION:

##     Example Program in section 9.7 (p 243) of "A Programmer's
##    View of Computer Architecture" of Goodman and Miller
##
##    This program does simple vector addition

    .data

# data items, i.e. all initialized and
# non-initialized items go in here

prompt1:    .asciiz "Vector addition program\n"
prompt2:    .asciiz "Please enter a vector\n"
linefeed:    .byte '\n'
err_msg:    .asciiz "Error encountered - quitting\n"

    .text
    .globl main

main:   
# your main subroutine code goes in here

    la $8, prompt1
    puts ($8)
    la $8, prompt2
    puts ($8)
    jal get_vector
    beq $2, $0, error1

# copy parameters out of registers
    move $16, $4        # $16 is x1
    move $17, $5        # $17 is y1
    move $18, $6        # $18 is z1

    la $8, prompt2
    puts ($8)
    jal get_vector
    beq $2, $0, error1

# copy parameters out of registers
    move $19, $4
    move $20, $5
    move $21, $6

# push parameters on stack for addition procedure

    add $sp, $sp, -24
    sw $16, 24($sp)
    sw $17, 20($sp)
    sw $18, 16($sp)
    sw $19, 12($sp)
    sw $20, 8($sp)
    sw $21, 4($sp)

    jal vector_add
    add $sp, $sp, 24    # pop parameters and discard

# the results x3, y3, z3 are already in $4, $5, and $6
# so don't move them

    jal print_result

# the last line of main
    done

# end of main
# any subroutines may be inserted here:...

error1:    la $8, err_msg
    puts ($8)
    done

# get_vector -- a procedure to get an x, y, and z for
#         a vector
# return values: $2 -- error flag, 0 if there is an error
#         $4 -- the x value
#         $5 -- the y value
#         $6 -- the z value

    .data
getx:    .asciiz "Enter x: "
gety:    .asciiz "Enter y: "
getz:    .asciiz "Enter z: "

    .text
get_vector:
    sw $31, 0($sp)    #  pushgm (Release 2.03) is a macro of original
    add $sp, $sp, -4    #  code in textbook

    la $8, getx    #  get x
    puts ($8)
    jal get_integer
    beq $2, $0, return1
    move $22, $3

    la $8, gety    #  get y
    puts ($8)
    jal get_integer
    beq $2, $0, return1
    move $23, $3

    la $8, getz    #  get z
    puts ($8)
    jal get_integer
    beq $2, $0, return1
    move $24, $3

return1:
    move $4, $22
    move $5, $23
    move $6, $24

    add $sp, $sp, 4
    lw $31, 0($sp)
    jr $31

# get_integer -- a procedure to form an integer from
#    a single line of user input
# return values:
#    $2 -- error flag, 0 if there is an error
#    $3 -- the integer value

    .data
    bias = 48

    .text
get_integer:
    sw $31, 0($sp)    # save return address
    add $sp, $sp, -4
    li $15, 1    # initialize variables
    li $3, 0
    lbu $11, linefeed
            # $11 -- the <CR> character

    li $9, bias    # $9 -- '0' ASCII character
            # code
            # NOTE: Not the same as original
            # using 'lw'

    li $13, '0'
    li $14, '9'
    getc $8        # $8 -- the user input character

get_digit:
    beq$8, $11, return2
            # integer is complete
            # when <CR> read
    blt $8, $13, bad_input
    bgt $8, $14, bad_input
    sub $10, $8, $9
    mul $3, $3, 10
    add $3, $3, $10
    getc $8
    b get_digit

bad_input:
    li $15, 0

return2:
    move $2, $15
    add $sp, $sp, 4    # restore return address
    lw $31, 0($sp)
    jr $31

# vector_add -- a procedure to add 2 vectors together
# return values:
#    $2 -- error flag, 0 if there is an error
#    $4 -- the x component
#    $5 -- the y component
#    $6 -- the z component
# parameters: on stack, x1, y1, z1, x2, y2, z2

vector_add:
    sw $31, 0($sp)    # save return address
    add $sp, $sp, -4

    lw $8, 28($sp)    # pop x components and add
    lw $9, 16($sp)
    add $4, $8, $9

    lw $8, 24($sp)    # pop y components and add
    lw $9, 12($sp)
    add $5, $8, $9

    lw $8, 20($sp)    # pop x components and add
    lw $9, 8($sp)
    add $6, $8, $9

return3:
    add $sp, $sp, 4    # restore return address
    lw $31, 0($sp)
    jr $31

# print_result -- a procedure to print out the 3 values
#    computed
# return values: none
# parameters:
#    $4 -- the x component to be printed
#    $5 -- the y component to be printed
#    $6 -- the z component to be printed

    .data
msg:    .asciiz "The result of the vector addition: \n"
x_msg:    .asciiz "x = "
y_msg:    .asciiz "y = "
z_msg:    .asciiz "z = "

    .text
print_result:
    sw $31, 0($sp)        # save return address
    add $sp, $sp, -4

    add $sp, $sp, -12    # save parameters, since
    sw $4, 12($sp)        # other procedures like
    sw $5, 8($sp)        # 'puts' also use $4 - $7
    sw $6, 4($sp)

    la $8, msg
    puts ($8)

    la $8, x_msg
    puts ($8)
    lw $4, 12($sp)        # x is on the stack
    jal print_int
    la $9, linefeed
    lbu $9, 0($9)
    putc $9

    la $8, y_msg
    puts ($8)
    lw $4, 8($sp)        # y is on the stack
    jal print_int
    la $9, linefeed
    lbu $9, 0($9)
    putc $9

    la $8, z_msg
    puts ($8)
    lw $4, 4($sp)        # z is on the stack
    jal print_int
    la $9, linefeed
    lbu $9, 0($9)
    putc $9

    lw $4, 12($sp)    # restore parameters
    lw $5, 8($sp)
    lw $6, 4($sp)
    add $sp, $sp, 12

return4:
    add $sp, $sp, 4    # restore return address
    lw $31, 0($sp)

    jr $31

# print_int -- a procedure to print out an integer
# return values: none
# parameters: $4 -- the integer to be printed

print_int:
    sw $31, 0($sp)    # save return address
    add $sp, $sp, -4

    li $10, 0    # $10 -- count of
            # number of digits

    move $12, $4
    sw $4, 0($sp)
    add $sp, $sp, -4

# repeat loop to peel off digits from the least
# significant end of the value
repeat:
    rem $9, $12, 10
    div $12, $12, 19
    add $9, $9, 48    # add back in the bias
    sw $9, 0($sp)    # push ASCII char. on stack
    add $sp, $sp, -4
    add $10, $10, 1
    bne $12, $0, repeat

# repeat loop to print out the characters stored on stack
print_em:
    add $sp, $sp, 4
    lw $11, 0($sp)
    putc $11
    sub $10, $10, 1
    bne $10, $0, print_em

    add $sp, $sp, 4
    lw $4, 0($sp)
return5:
    add $sp, $sp, 4
    lw $31, 0($sp)
    jr $31

# END OF PROGRAM (leave this line here)
Read More

This sample code illustrates basic I/O

# NAME:
# TA's NAME:
# DESCRIPTION:

#
#----------------------------------------------#
#
# This sample code illustrates basic I/O
# USING SYSCALLS to the console, along with a
# small amount of array manipulation.
#
#----------------------------------------------#

# This is the data segment

        .data       
string0:    .asciiz     "This is a text string\n"
item0:    .word        99
array0:    .word        11 22 33 44 55 66 77 88 99 #array of constants

#----------------------------------------------#

# This is the the code ("text") segment
    .text
        .globl main   

main:           

# EXAMPLE I:  Print a string on the console.  The method is to load the
# address of the string into $a0 and then use a syscall to print the string.

    la $a0, string0        # Load the base address of the string into $a0
    li $v0, 4        # Set $v0 to 4, this tells syscall to print the
                # text string specified by $a0
    syscall            # Now print the text string to the console

# EXAMPLE II: Load an integer from the data segment and print it.

    lw $a0, item0        # Load the value of item0 into $a0
    li $v0, 1        # Set $v0 to 1, this tells syscall to print the
                # integer specified by $a0   
    syscall            # Now print the integer

# EXAMPLE III: Read an integer from the console.

    li $v0, 5        # Set $v0 to 5, this tells syscall to read an
                # integer from the console
    syscall            # Now read the integer.
                #
                # The integer is now in $v0, and we can use
                # it as we see fit.

# EXAMPLE IV: Print an integer (the one that is the 4th element of an array)

        li  $t0, 3        # Set t0 to 3, this is the index of the
                # element we are fetching from the array
        li  $t1, 4        # Set t1 to 4, this is the size in bytes of an
                # element (this is an integer array)
        mul $t2, $t1, $t0    # t2 = t1 * t0, so t2 is the BYTE offset of the
                  # element we are fetching from the array.
    lw  $a0, array0($t2)    # Load the element of the array; note that
                # the first element in the array has an offset
                # of zero
    li  $v0, 1        # Set $v0 to 1, this tells syscall to print the
                # integer specified by $a0
    syscall            # Now print the integer

# EXAMPLE V:  Halt the program.

    li $v0, 10        # set $v0 to 10, this tells syscall to end
                # execution of this program
    syscall
   
Read More

Please enter a positive integer in hex

##   C++ version:
##   void factorial(int input, int output){
##     int n = 0;
##     int fact = 0;
##     int i = 0;
##
##     cout << "Please enter a positive integer: ";
##     cin >> hex >> n;
##     if (n > 0){
##       fact = 1;
##       while (i < n){
##         fact = fact * i;
##         i++;
##       }
##       cout << "The fact of ";
##       cout << hex << n << " is " << fact << endl;
##     }
##     else
##       cout << "Number negative WRONG !" << endl;
##   }




   .data

# data items, i.e. all initialized and
# non-initialized items go in here

#strings for making the output look nice

str1:   .asciiz "Please enter a positive integer in hex: "
str2:   .asciiz "The factorial of "
str3:   .asciiz " is in hex "
str4:   .asciiz "Number negative WRONG ! "
newline: .asciiz "\n"

##      Assume that the compiler chooses to use registers for n,fact,i:
##      $8 = n         (user entered character)
##      $9 = fact      (running fact of the first n integers)
##      $10 = i         (integer to be added into sum, runs from 0 to n)
##      $11 = tmp       (used for comparison of i and n)

        .text
        .globl main    # declaration of main as a global variable

main:   li $8, 0
        li $9, 1
        li $10, 1
        li $11, 0

        puts str1

# the following 3 lines read a hex number and store it in $8

        li $2, 500     ## replace "get n" of SAL code since MAL
        syscall         ## does not have "get"
        move $8, $2   ##

        puts newline

if :    sub $11, $8, $11  ## if n > 0
        bltz $11, else 
then:     
while:  sub $11, $8, $10
        bltz $11, endwhile
loop:   mul $9, $9, $10
        add $10, $10, 1
        b while

endwhile:  puts str2
       
        li $2, 600     ## replacement of "put n" of SAL code
        move $4, $8
        syscall

        puts str3
       
        li $2, 600     ## replace "put sum" of SAL code
        move $4, $9
        syscall

        puts newline
      
        b end_if

# here starts the else part

else:   puts str4
       
        li $2, 600     ## replace "put sum" of SAL code
        move $4, $9
        syscall

        puts newline
      
end_if:
# the last line of main

        done

# end of main
# any subroutines may be inserted here:...

# END OF PROGRAM (leave this line here)
Read More

Clock in Java Script

<script language="javascript">

<!-- Clock in Java Script 
var dateform speed=1000
len=50
tid = 0; 
function dodate()
{  
f.date.value=new Date();  
tid=window.setTimeout("dodate()",speed);
}  
function start(x)
{  
f=x  
tid=window.setTimeout("dodate()",speed);
}  
function cleartid()
{   window.clearTimeout(tid);
}  
// for some reason on some pages this crashes netscape function Clock() { document.write('<form name="dateform">


<input name="date" size="')" value="Clock: Requires Javascript"></form>

')
start(document.dateform);
}
// end--><!-- Clock in Java Script 
var dateform speed=1000
len=50
tid = 0; 
function dodate()
{  
    f.date.value=new Date();  
    tid=window.setTimeout("dodate()",speed);
}  
function start(x)
{  
f=x  
tid=window.setTimeout("dodate()",speed);
}  
function cleartid()
{   window.clearTimeout(tid);
}  
// for some reason on some pages this crashes netscape function Clock() { document.write('<form name="dateform">


<input name="date" size="')" value="Clock: Requires Javascript"></form>
')
start(document.dateform);
}
// end-->
</script>
Read More

Virtual Machine


Custom - Prática
Muitas circunstâncias exigem que você selecione uma instalação personalizada. Selecione Personalizada se quero fazer uma das seguintes características:
Faça uma versão diferente da máquina virtual do que é especificado no editor de preferências.
Especifique o I / O tipo de adaptador para adaptadores de SCSI: BusLogic, LSI Logic, ou
LSI Logic SAS.

  Especifique se você deseja criar uma IDE ou um disco SCSI virtual, independentemente do
padrão que é normalmente utilizado para o sistema operacional convidado.
  Use um disco físico, em vez de um disco virtual (para usuários avançados).
  Use um disco virtual existente, em vez de criar um disco virtual.
  Coloque o arquivo de disco virtual em um local diferente do directório da máquina virtual.
  Alocar todo o espaço em disco virtual e não permitindo que o espaço em disco para gradualmente crescer ao máximo.
Típico Criar uma nova máquina virtual com os dispositivos mais comuns e opções de configuração.

Bridged networking - Se o computador host está em uma rede e você tem uma
endereço IP em separado para a máquina virtual (ou pode obter um automaticamente a partir de um
Servidor DHCP), escolha ponte. Outros computadores na rede podem então
comunicar-se directamente com a máquina virtual.

NAT (Network Address Translation) - Se você não tiver um endereço IP em separado para
sua máquina virtual, mas você quer ser capaz de se conectar à Internet, seleccione NAT.
A máquina virtual e a quota de acolhimento de uma identidade única rede que não é visível
fora da rede.


Host-only Host - somente em rede fornece uma conexão de rede entre o
máquina virtual e o computador anfitrião, usando um adaptador de rede virtual que é
visíveis para o sistema operacional hospedeiro. Com host-only networking, virtual
máquina pode se comunicar apenas com o anfitrião e outras máquinas virtuais no
host-rede única. Selecione Host-somente a criação de uma rede isolada virtual.

Read More

Expert Query - JOIN's


--1.  Liste todos os jogadores de uma determinada equipa e a respectiva
--          posição onde jogam habitualmente, que estão inscritos na época 09/10 da 1a Liga portuguesa.

   
SELECT     dbo.Empregado.idEmpregado, dbo.Empregado.nome, dbo.Posicao.descricao
FROM         dbo.Inscrito INNER JOIN
                      dbo.Empregado ON dbo.Inscrito.idEmpregado = dbo.Empregado.idEmpregado INNER JOIN
                      dbo.Posicao ON dbo.Empregado.idPosicao = dbo.Posicao.idPosicao
WHERE     (dbo.Inscrito.fifaTeamCode = 'pt-benfica') AND (YEAR(dbo.Inscrito.dataInicio) = 2009)




--2.  Qual o número de golos que o jogador Liedson, do Sporting, marcou até à data,
--          em cada edição da ia Liga portuguesa.



SELECT     YEAR(dbo.Jogou.dataInicio) AS Edicao, COUNT(*) AS Golos
FROM         dbo.Estatistica INNER JOIN
                      dbo.Jogou ON dbo.Estatistica.idEmpregado = dbo.Jogou.idEmpregado AND dbo.Estatistica.dataJogo = dbo.Jogou.dataJogo AND
                      dbo.Estatistica.equipa1 = dbo.Jogou.equipa1
GROUP BY dbo.Estatistica.idEmpregado, dbo.Estatistica.idFacto, YEAR(dbo.Jogou.dataInicio)
HAVING      (dbo.Estatistica.idEmpregado = 'SPO04')-- Liedson
                   AND (dbo.Estatistica.idFacto = 8) -- Golos






--3.  De que países são as Selecções com a média de idade de jogadores mais baixa,
--          na Edição 2006 do Campeonato do Mundo. Devem ser seleccionadas todas as selecções
--          que se situarem no 1° e 2° lugar da média mais baixa.

SELECT     TOP (2) WITH TIES dbo.Edicao.fifaTeamCode, AVG(YEAR(GETDATE()) - YEAR(dbo.Empregado.dataNascimento)) AS MédiaIdades
FROM         dbo.Empregado INNER JOIN
                      dbo.Inscrito ON dbo.Empregado.idEmpregado = dbo.Inscrito.idEmpregado INNER JOIN
                      dbo.Edicao ON dbo.Inscrito.fifaTeamCode = dbo.Edicao.fifaTeamCode AND dbo.Inscrito.idCompeticao = dbo.Edicao.idCompeticao AND
                      dbo.Inscrito.dataInicio = dbo.Edicao.dataInicio
WHERE     (YEAR(dbo.Edicao.dataInicio) = 2010)-- Ano
GROUP BY dbo.Edicao.fifaTeamCode, dbo.Edicao.idCompeticao
HAVING      (dbo.Edicao.idCompeticao = 'MUNDL')
ORDER BY MédiaIdades

--4.  Quem foi/foram o(s) jogadore(s), e de que país(es), que ganharam maior número de
--          um determinado tipo de prémio em edições do Campeonato do Mundo, até à data.




SELECT     TOP (1) WITH TIES dbo.Premio.idEmpregado, dbo.Empregado.nome, dbo.Premio.fifaTeamCode, dbo.TipoPremio.descricao AS Premio, COUNT(dbo.Premio.id)
                      AS NumPremios
FROM         dbo.Premio LEFT OUTER JOIN
                      dbo.TipoPremio ON dbo.Premio.idTipoPremio = dbo.TipoPremio.idTipoPremio LEFT OUTER JOIN
                      dbo.Empregado ON dbo.Premio.idEmpregado = dbo.Empregado.idEmpregado
GROUP BY dbo.Premio.idTipoPremio, dbo.Premio.fifaTeamCode, dbo.Premio.idEmpregado, dbo.TipoPremio.descricao, dbo.Premio.idCompeticao, dbo.Empregado.nome
HAVING      (dbo.Premio.idCompeticao = 'MUNDL') AND (dbo.Premio.idTipoPremio = 2)
ORDER BY NumPremios DESC


--5.  Qual o país (ou países), que tem mais jogadores dessa nacionalidade, inscritos
--          na época 09/10 da 1a Liga portuguesa.






SELECT     TOP (1) WITH TIES dbo.Pais.nome, COUNT(*) AS Count
FROM         dbo.Inscrito INNER JOIN
                      dbo.Empregado ON dbo.Inscrito.idEmpregado = dbo.Empregado.idEmpregado INNER JOIN
                      dbo.Localidade ON dbo.Localidade.idLocalidade = dbo.Empregado.idLocalidade INNER JOIN
                      dbo.Pais ON dbo.Localidade.ISOalpha2Id = dbo.Pais.ISOalpha2Id
WHERE     (YEAR(dbo.Inscrito.dataInicio) = 2009) AND (dbo.Inscrito.idCompeticao = '1LGPT')
GROUP BY dbo.Pais.nome
ORDER BY dbo.Pais.nome DESC





--6.  Para cada uma das classificações, 1° lugar, 2° lugar e 3° lugar, mostre o número
--          de vezes que um determinado país se classificou nesse lugar, na competição do Campeonato do Mundo.

SELECT     fifaTeamCode, classificacao, COUNT(*) AS Vezes
FROM         dbo.Classificacao
WHERE     (idCompeticao = 'MUNDL') AND (ultimaEtapa = 's')
GROUP BY   fifaTeamCode, classificacao
HAVING      (classificacao IN ('1', '2', '3')) AND (fifaTeamCode = 'espanha')

--7.  Liste todos os jogos da época 09/10 da 1a Liga portuguesa em que o Benfica joga em casa.

SELECT     dataJogo, equipa1, equipa2
FROM         dbo.Jogo
WHERE     (equipa1 = 'PT-BENFICA') AND (equipaCasa = '1') AND (idCompeticao = '1LGPT') AND (YEAR(dataInicio) = 2009)



--8.  Qual o número de internacionalizações (jogos em que jogou), do jogador Ricardo Sá Pinto.

SELECT     COUNT(*) AS Internacionalizações
FROM         dbo.Jogou
GROUP BY  idEmpregado, idCompeticao
HAVING      (idCompeticao = 'MUNDL') AND (idEmpregado = 'SPO10') --Jogador Sá Pinto


--9.  Qual a equipa (jogadores e treinador), mais cara e o respectivo valor, do
--          campeonato da Premiership (1a Liga Inglesa), na época de 09/10.
--          Note que pode acontecer ser mais de uma.

SELECT     TOP (1) WITH TIES dbo.Equipa.fifaTeamCode, Equipa_1.descricao, SUM(dbo.Empregado.salario) AS Valor
FROM         dbo.Edicao INNER JOIN
                      dbo.Equipa ON dbo.Edicao.fifaTeamCode = dbo.Equipa.fifaTeamCode INNER JOIN
                      dbo.Contrato ON dbo.Equipa.fifaTeamCode = dbo.Contrato.fifaTeamCode INNER JOIN
                      dbo.Empregado ON dbo.Contrato.idEmpregado = dbo.Empregado.idEmpregado INNER JOIN
                      dbo.Equipa AS Equipa_1 ON dbo.Edicao.fifaTeamCode = Equipa_1.fifaTeamCode
GROUP BY dbo.Edicao.idCompeticao, dbo.Equipa.fifaTeamCode, YEAR(dbo.Edicao.dataInicio), Equipa_1.descricao
HAVING      (dbo.Edicao.idCompeticao = '1LGUK') AND (YEAR(dbo.Edicao.dataInicio) = 2009)
ORDER BY Valor DESC


--10. Liste todos os jogadores do Sporting de Braga que foram inscritos na época 09/10 da 1a Liga portuguesa
--          e nunca jogaram nenhum jogo.
                       
SELECT     dbo.Inscrito.idEmpregado, dbo.Empregado.nome
FROM         dbo.Inscrito INNER JOIN
                      dbo.Empregado ON dbo.Inscrito.idEmpregado = dbo.Empregado.idEmpregado
WHERE     (dbo.Inscrito.idEmpregado NOT IN
                          (SELECT     idEmpregado
                            FROM          dbo.Jogou
                            WHERE      (fifaTeamCode = 'PT-BRAGA') AND (YEAR(dataInicio) = 2009) AND (idCompeticao = '1LGPT')))
                           
           AND (dbo.Inscrito.fifaTeamCode = 'PT-BRAGA') AND (YEAR(dbo.Inscrito.dataInicio) = 2009) AND (dbo.Inscrito.idCompeticao = '1LGPT')
                       
                                           
--11. Qual o jogo e respectiva competição (note que pode acontecer ser mais de um),
--          onde ocorreram mais cartões vermelhos nos primeiros 90 minutos de jogo.

SELECT     TOP (1) WITH TIES dbo.Jogo.idCompeticao, dbo.Competicao.descricao, dbo.Estatistica.dataJogo, dbo.Estatistica.equipa1, dbo.Jogo.equipa2,
           COUNT(dbo.Estatistica.equipa1) AS CartoesVermelhos
FROM         dbo.Estatistica INNER JOIN
                      dbo.Jogou ON dbo.Estatistica.idEmpregado = dbo.Jogou.idEmpregado
                                                     AND dbo.Estatistica.dataJogo = dbo.Jogou.dataJogo
                                                     AND dbo.Estatistica.equipa1 = dbo.Jogou.equipa1 INNER JOIN
                      dbo.Jogo ON dbo.Jogou.dataJogo = dbo.Jogo.dataJogo
                                                     AND dbo.Jogou.equipa1 = dbo.Jogo.equipa1 INNER JOIN
                      dbo.Competicao ON dbo.Jogou.idCompeticao = dbo.Competicao.idCompeticao
GROUP BY dbo.Estatistica.idFacto, dbo.Estatistica.equipa1, dbo.Estatistica.valor, dbo.Estatistica.dataJogo, dbo.Jogo.equipa2, dbo.Jogo.idCompeticao, dbo.Competicao.descricao
HAVING  (dbo.Estatistica.idFacto = 6) AND (dbo.Estatistica.valor < 90)
ORDER BY CartoesVermelhos DESC

--12. Liste os nomes dos guarda-redes e respectivo país pelo qual jogam na edição de 2010
--          do campeonato do mundo

SELECT DISTINCT dbo.Jogou.idEmpregado, dbo.Empregado.nome, dbo.Pais.nome AS Pais
FROM         dbo.Edicao INNER JOIN
                      dbo.Jogou ON dbo.Edicao.dataInicio = dbo.Jogou.dataInicio AND dbo.Edicao.idCompeticao = dbo.Jogou.idCompeticao AND
                      dbo.Edicao.fifaTeamCode = dbo.Jogou.fifaTeamCode INNER JOIN
                      dbo.Empregado ON dbo.Jogou.idEmpregado = dbo.Empregado.idEmpregado INNER JOIN
                      dbo.Equipa ON dbo.Edicao.fifaTeamCode = dbo.Equipa.fifaTeamCode INNER JOIN
                      dbo.Pais ON dbo.Equipa.ISOalpha2Id = dbo.Pais.ISOalpha2Id
WHERE     (YEAR(dbo.Edicao.dataInicio) = 2010) AND (dbo.Edicao.idCompeticao = 'MUNDL') AND (dbo.Jogou.idPosicao = 'GD')


--13. Que equipas já foram treinadas pelo treinador José Mourinho até à data.

SELECT DISTINCT dbo.Equipa.fifaTeamCode, dbo.Equipa.descricao
FROM         dbo.Inscrito LEFT OUTER JOIN
                      dbo.Equipa ON dbo.Inscrito.fifaTeamCode = dbo.Equipa.fifaTeamCode
WHERE     (dbo.Inscrito.idEmpregado = 'BEN12')

--14. Quantas vezes o jogador Fábio Coentrão foi suplente na época 09/10 da 1a Liga portuguesa.

SELECT     COUNT(*) AS Suplente
FROM         dbo.Jogo INNER JOIN
                      dbo.Inscrito ON dbo.Jogo.equipa1 = dbo.Inscrito.fifaTeamCode AND dbo.Jogo.idCompeticao = dbo.Inscrito.idCompeticao AND
                      dbo.Jogo.dataInicio = dbo.Inscrito.dataInicio
WHERE     (dbo.Jogo.dataJogo NOT IN
                          (SELECT     Jogo_1.dataJogo
                            FROM          dbo.Jogo AS Jogo_1 INNER JOIN
                                                   dbo.Jogou ON Jogo_1.dataInicio = dbo.Jogou.dataInicio AND Jogo_1.idCompeticao = dbo.Jogou.idCompeticao AND
                                                   Jogo_1.dataJogo = dbo.Jogou.dataJogo AND Jogo_1.equipa1 = dbo.Jogou.equipa1 INNER JOIN
                                                   dbo.Competicao ON Jogo_1.idCompeticao = dbo.Competicao.idCompeticao
                            WHERE      (Jogo_1.idCompeticao = '1LGPT') AND (dbo.Jogou.idEmpregado = 'BEN06')))
GROUP BY YEAR(dbo.Inscrito.dataInicio), dbo.Inscrito.idEmpregado
HAVING      (YEAR(dbo.Inscrito.dataInicio) = 2009) AND (dbo.Inscrito.idEmpregado = 'BEN06')



--15. Qual o melhor marcador na época 09/10 da 1a Liga portuguesa, até à data.
--          Note que pode acontecer ser mais de um.

SELECT     TOP (1) WITH TIES COUNT(*) AS Golos, dbo.Estatistica.idEmpregado, dbo.Empregado.nome
FROM         dbo.Estatistica INNER JOIN
                      dbo.Jogou ON dbo.Estatistica.idEmpregado = dbo.Jogou.idEmpregado AND dbo.Estatistica.dataJogo = dbo.Jogou.dataJogo AND
                      dbo.Estatistica.equipa1 = dbo.Jogou.equipa1 INNER JOIN
                      dbo.Empregado ON dbo.Estatistica.idEmpregado = dbo.Empregado.idEmpregado
WHERE     (dbo.Estatistica.idFacto = 8)
GROUP BY dbo.Estatistica.idEmpregado, dbo.Jogou.dataInicio, dbo.Empregado.nome, dbo.Jogou.idCompeticao
HAVING      (YEAR(dbo.Jogou.dataInicio) = 2009) AND (dbo.Jogou.idCompeticao = '1LGPT')
ORDER BY Golos DESC



--16. Qual o jogador do Sporting de Braga que jogou mais minutos de jogo na época 09/10 da 1a Liga portuguesa,
--          até à data. Note que pode acontecer ser mais de um.

SELECT     TOP (1) WITH TIES dbo.Estatistica.idEmpregado, dbo.Empregado.nome,
--SOMA((Saida/Fim do jogo)-(Entrada/inicio de Jogo))
SUM((CASE WHEN dbo.Estatistica.idFacto = 10  THEN dbo.Estatistica.valor ELSE 0 END)
    - (CASE WHEN dbo.Estatistica.idFacto = 9 THEN dbo.Estatistica.valor ELSE 0 END)) AS Tempo
FROM         dbo.Equipa INNER JOIN
                      dbo.Jogou ON dbo.Equipa.fifaTeamCode = dbo.Jogou.fifaTeamCode INNER JOIN
                      dbo.Empregado ON dbo.Jogou.idEmpregado = dbo.Empregado.idEmpregado RIGHT OUTER JOIN
                      dbo.Estatistica ON dbo.Jogou.idEmpregado = dbo.Estatistica.idEmpregado AND dbo.Jogou.dataJogo = dbo.Estatistica.dataJogo AND
                      dbo.Jogou.equipa1 = dbo.Estatistica.equipa1
WHERE     (dbo.Equipa.fifaTeamCode = 'PT-BRAGA') AND (YEAR(dbo.Jogou.dataInicio) = 2009) AND (dbo.Jogou.idCompeticao = '1LGPT')
GROUP BY dbo.Estatistica.idEmpregado, dbo.Empregado.nome
ORDER BY Tempo DESC


--17. Quais os países que nunca participaram em nenhuma edição do campeonato do mundo.

SELECT     dbo.Pais.ISOalpha2Id, dbo.Pais.nome
FROM       dbo.Equipa INNER JOIN
                      dbo.Edicao ON dbo.Equipa.fifaTeamCode = dbo.Edicao.fifaTeamCode RIGHT OUTER JOIN
                      dbo.Pais ON dbo.Equipa.ISOalpha2Id = dbo.Pais.ISOalpha2Id
WHERE     (dbo.Edicao.fifaTeamCode IS NULL)

--18. Em que edições (ano) do Campeonato do Mundo participou uma dada equipa.

SELECT     YEAR(dbo.Edicao.dataInicio) AS Edição
FROM         dbo.Equipa INNER JOIN
                      dbo.Edicao ON dbo.Equipa.fifaTeamCode = dbo.Edicao.fifaTeamCode INNER JOIN
                      dbo.Pais ON dbo.Equipa.ISOalpha2Id = dbo.Pais.ISOalpha2Id INNER JOIN
                      dbo.Competicao ON dbo.Edicao.idCompeticao = dbo.Competicao.idCompeticao
WHERE     (dbo.Edicao.idCompeticao = 'MUNDL') AND (dbo.Equipa.ISOalpha2Id = 'IT')

--19. Quem foi o melhor marcador de todos os tempos em edições do Campeonato do Mundo.

SELECT     TOP (1) WITH TIES YEAR(dbo.Edicao.dataInicio) AS Ediçao, COUNT(*) AS Golos, dbo.Empregado.idEmpregado, dbo.Empregado.nome
FROM         dbo.Empregado INNER JOIN
                      dbo.Estatistica ON dbo.Empregado.idEmpregado = dbo.Estatistica.idEmpregado LEFT OUTER JOIN
                      dbo.Edicao INNER JOIN
                      dbo.Jogou ON dbo.Edicao.fifaTeamCode = dbo.Jogou.fifaTeamCode AND dbo.Edicao.idCompeticao = dbo.Jogou.idCompeticao AND
                      dbo.Edicao.dataInicio = dbo.Jogou.dataInicio INNER JOIN
                      dbo.Competicao ON dbo.Edicao.idCompeticao = dbo.Competicao.idCompeticao ON dbo.Estatistica.idEmpregado = dbo.Jogou.idEmpregado AND
                      dbo.Estatistica.dataJogo = dbo.Jogou.dataJogo AND dbo.Estatistica.equipa1 = dbo.Jogou.equipa1
WHERE     (dbo.Edicao.idCompeticao = 'MUNDL')
GROUP BY dbo.Estatistica.idFacto, dbo.Empregado.idEmpregado, YEAR(dbo.Edicao.dataInicio), dbo.Empregado.nome
HAVING      (dbo.Estatistica.idFacto = 8)
ORDER BY Golos DESC

--20. Quem são os jogadores que jogam (estão inscritos) no campeonato português de 09/10 e
--estão também inscritos para integrar a equipa representará Portugal no Campeonato do Mundo de 2010.

SELECT     dbo.Empregado.idEmpregado, dbo.Empregado.nome
FROM         dbo.Inscrito INNER JOIN
                      dbo.Competicao ON dbo.Inscrito.idCompeticao = dbo.Competicao.idCompeticao INNER JOIN
                      dbo.Empregado ON dbo.Inscrito.idEmpregado = dbo.Empregado.idEmpregado
WHERE     (YEAR(dbo.Inscrito.dataInicio) = 2010) AND (dbo.Empregado.idEmpregado IN
                          (SELECT     Inscrito_1.idEmpregado
                            FROM          dbo.Inscrito AS Inscrito_1 INNER JOIN
                                                   dbo.Competicao AS Competicao_1 ON Inscrito_1.idCompeticao = Competicao_1.idCompeticao
                            WHERE      (Competicao_1.descricao = N'1ª Liga Portuguesa') AND (YEAR(Inscrito_1.dataInicio) = 2009))) AND (dbo.Inscrito.idCompeticao = 'MUNDL')




Read More
 
Powered by Blogger